Maps SDK для Android: как получить ключ API

Примечание. Тарифный план Premium платформы Google Карт больше недоступен для регистрации и новых клиентов.

Для использования Maps SDK для Android вам необходим ключ API. Это уникальный идентификатор, который нужен для аутентификации запросов, связанных с вашим проектом, для работы с API и оплаты.

Как получить ключ API

С вашим проектом должен быть связан хотя бы один ключ API.

Чтобы получить его, выполните следующие действия:

  1. Откройте Google Cloud Platform Console.
  2. Выберите в раскрывающемся меню проект, который был создан для вас после покупки плана Premium. Название проекта может начинаться с Google Maps APIs for Business, Google Maps for Work или Google Карты.
  3. Примечание. Чтобы получить полный доступ ко всем функциям плана Premium, необходимо использовать проект, связанный с аккаунтом Premium. При покупке лицензии вашему объекту в рамках плана Premium присваивается название в следующем формате: gme-[company] & proj-[number] ([type]). Чтобы приступить к работе с нужным проектом, войдите как владелец проекта в консоль по адресу console.cloud.google.com/project/number (вместо number укажите номер проекта). Имя владельца проекта можно найти в приветственном письме.

  4. Нажмите кнопку меню и выберите API и сервисы > Учетные данные.
  5. На странице Учетные данные нажмите Создать учетные данные > Ключ API.
    Появится диалоговое окно с созданным ключом API (зашифрованная строка).
  6. Нажмите Закрыть.
    Новый ключ API можно будет найти в разделе Ключи API на странице Учетные данные.

Как добавить в приложение ключ API

Выполните указанные ниже действия, чтобы добавить ключ API в файл манифеста приложения (AndroidManifest.xml).

  1. Откройте файл AndroidManifest.xml и добавьте в качестве дочернего элемента <application> следующий элемент (вставьте его непосредственно перед закрывающим тегом </application>):
        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="YOUR_API_KEY"/>
        

    В атрибуте value замените строку YOUR_API_KEY на свой ключ API. Он должен быть зашифрован. Этот элемент устанавливает для ключа com.google.android.geo.API_KEY указанное вами значение ключа API.

  2. Сохраните файл AndroidManifest.xml и выполните повторную сборку приложения.

Примечание. Как показано выше, рекомендуемое имя метаданных для ключа API – com.google.android.geo.API_KEY. Ключ с таким именем может использоваться для аутентификации нескольких API созданных на основе Google Карт для платформы Android, включая Maps SDK for Android. Для обеспечения обратной совместимости API также поддерживает имя com.google.android.maps.v2.API_KEY. Это устаревшее имя обеспечивает аутентификацию только для Android Maps API версии 2. Приложение позволяет указать только одно из имен в метаданных ключа API. Если указаны оба имени, API вызывает исключение.

Как задать ограничения для ключа API

Ограничения обеспечивают дополнительную безопасность, поскольку с помощью ключа API можно будет отправлять только авторизованные запросы. Мы настоятельно рекомендуем следовать инструкциям по настройке ограничений для ключей API. Дополнительные сведения приводятся в рекомендациях по работе с ключами API.

Чтобы задать ограничения для ключа API, выполните следующие действия.

  1. Перейдите на страницу выбора проекта в консоли GCP Console. Выберите проект Google Cloud, для которого нужно добавить ключ API, или создайте новый.

    Перейти на страницу выбора проекта

  2. Перейдите на страницу API и сервисы > Учетные данные.

    Перейти на страницу "Учетные данные"

  3. Выберите ключ API, для которого нужно задать ограничение. Появится страница со свойствами ключа API.
  4. В разделе Ограничения для ключа установите следующие ограничения:
    • Ограничения для приложений:
      1. Выберите Приложения для Android.
      2. Нажмите + Название пакета и цифровой отпечаток.
      3. Укажите название пакета и цифровой отпечаток сертификата SHA-1. Примеры:
        com.example.android.mapexample
        BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
        Подробнее о том, где получить цифровой отпечаток SHA-1 для приложения
    • Ограничения для API:
      1. Нажмите Применить ограничения для ключа.
      2. В раскрывающемся списке Выберите API нажмите Maps SDK для Android.
        Если Maps SDK для Android там нет, его необходимо включить.
  5. Внеся все изменения, нажмите Сохранить.

Где получить цифровой отпечаток SHA-1 для приложения

Ограничение для ключа API на платформе Android использует цифровой сертификат вашего приложения в сокращенной форме, которая называется цифровым отпечатком SHA-1.

Получение информации о сертификации из Android Studio

Если вы следовали руководству по началу работы для Maps SDK for Android, Android Studio создаст полезный файл google_maps_api.xml, содержащий учетные данные вашего приложения.

Выберите один из перечисленных ниже способов получения своего ключа API из Android Studio.

  • Самый быстрый и простой способ: используйте ссылку в файле google_maps_api.xml, созданном Android Studio.
    1. Скопируйте ссылку из файла google_maps_api.xml и вставьте ее в адресную строку браузера. Эта ссылка перенаправит вас в Google Cloud Platform Console и предоставит консоли необходимую информацию через параметры URL, тем самым сократив объем данных, которые требуется вводить вручную.
    2. Выполните инструкции, чтобы создать новый проект в Google Cloud Platform Console, или выберите существующий проект.
    3. Создайте для своего проекта ключ API с ограничением для Android.
    4. Скопируйте созданный ключ API, вернитесь в Android Studio и вставьте ключ API в элемент <string> в файле google_maps_api.xml.
  • Несколько менее быстрый способ: используйте учетные данные в файле google_maps_api.xml, созданном Android Studio.
    1. Скопируйте учетные данные из файла google_maps_api.xml.
    2. Откройте Google Cloud Platform Console.
    3. Используйте скопированные учетные данные, чтобы добавить приложение в существующий ключ API или создать новый.

Самостоятельное получение информации о сертификате

Если при создании приложения вы не следовали руководству по началу работы, вам необходимо самостоятельно получить цифровой отпечаток SHA-1 для своего сертификата. Прежде всего убедитесь, что вы действительно используете соответствующий сертификат. У вас может быть два сертификата:

  • Сертификат для отладки. Этот сертификат создается автоматически при выполнении отладочной сборки приложения с помощью инструментов Android SDK. Его следует использовать исключительно при тестировании приложений. Не пытайтесь опубликовать приложение, подписанное с помощью сертификата для отладки. Подробные сведения о таких сертификатах можно найти на странице Добавление подписи в режиме отладки в документации для разработчиков Android.
  • Сертификат для выпуска. Этот сертификат создается с помощью инструментов Android SDK при выполнении сборки в процессе подготовки к выпуску. Этот сертификат можно также создать с помощью программы keytool. Этот сертификат используется для добавления подписи в приложение, готовое к публикации.

Ниже показан порядок действий, которые необходимо выполнить, чтобы отобразить цифровой отпечаток SHA-1 сертификата в программе keytool с помощью параметра -v. Подробные сведения о программе Keytool можно найти в документации Oracle.

Сертификат для отладки

Отображение цифрового отпечатка сертификата для отладки

  1. Найдите свой файл хранилища ключей для отладки. Этот файл, который называется debug.keystore, создается при выполнении первой сборки проекта. По умолчанию он хранится в том же каталоге, где и файлы виртуального устройства Android (AVD):

    • macOS и Linux: ~/.android/
    • Windows Vista и Windows 7: C:\Users\your_user_name\.android\
  2. Откройте цифровой отпечаток SHA-1.

    • В Linux или macOS перейдите в окно терминала и введите следующую команду:

      keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
    • В Windows Vista и Windows 7 выполните следующую команду:

      keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

Вы должны получить примерно такой результат:

Alias name: androiddebugkey
Creation date: Jan 01, 2013
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 4aa9b300
Valid from: Mon Jan 01 08:04:04 UTC 2013 until: Mon Jan 01 18:04:04 PST 2033
Certificate fingerprints:
     MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9
     SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75
     Signature algorithm name: SHA1withRSA
     Version: 3
Сертификат для выпуска

Отображение цифрового отпечатка сертификата для выпуска

  1. Найдите свой файл хранилища ключей сертификата для выпуска. Этот файл может называться по-разному, и для него нет стандартного местоположения. Если не указать этот файл при создании сборки приложения для выпуска, ваш пакет .apk останется без подписи и его необходимо будет подписать, чтобы обеспечить возможность публикации. Чтобы отобразить сертификат выпуска, также потребуется псевдоним и пароли для файла keystore и самого сертификата. Чтобы получить список псевдонимов для всех ключей, имеющихся в хранилище, введите следующую команду:

    keytool -list -keystore your_keystore_name

    Вместо your_keystore_name укажите полный путь к файлу, включая расширение .keystore. Потребуется ввести пароль для хранилища ключей. После этого в окне программы keytool появится список всех псевдонимов, имеющихся в хранилище.

  2. В окне терминала или в командной строке введите следующую команду:

    keytool -list -v -keystore your_keystore_name -alias your_alias_name

    Вместо your_keystore_name укажите полный путь к файлу, включая расширение .keystore. Замените your_alias_name на псевдоним, присвоенный сертификату при его создании.

Вы должны получить примерно такой результат:

Alias name: <alias_name>
Creation date: Feb 02, 2013
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 4cc9b300
Valid from: Mon Feb 02 08:01:04 UTC 2013 until: Mon Feb 02 18:05:04 PST 2033
Certificate fingerprints:
    MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6B:AC:F9
    SHA1: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:90:AF:A1:66:6E:44:5D:75
    Signature algorithm name: SHA1withRSA
    Version: 3

В строке, которая начинается с SHA1, содержится цифровой отпечаток SHA-1. Контрольная сумма представляет собой последовательность из 20 двузначных чисел в шестнадцатеричном формате, которые разделены двоеточиями.

Дополнительные сведения о цифровых сертификатах можно найти в руководстве Android по добавлению подписи в приложения.