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

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

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

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

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

  1. Откройте Google Cloud Platform Console.
  2. Выберите нужный вариант в раскрывающемся меню или создайте проект, для которого нужно добавить ключ API.
  3. Нажмите кнопку меню и выберите API и сервисы > Учетные данные.
  4. На странице Учетные данные нажмите Создать учетные данные > Ключ API.
    Появится диалоговое окно с созданным ключом API.
  5. Нажмите Закрыть.
    Новый ключ API можно будет найти в разделе Ключи 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 для сайтов (HTTP-URL перехода), веб-серверов (IP-адреса) или мобильных приложений (для Android или iOS). Вы можете выбрать только один вариант из списка с учетом платформы API или SDK (см. API Google Платформы для маркетинга по платформам).

    Примечание. Если вам нужно вызвать API сайта, веб-сервиса и/или мобильного приложения из одного и того же клиентского приложения, создайте несколько ключей и задайте для них ограничения.

  • Ограничение для API. Вы можете настроить использование ключа API для одного или нескольких API или SDK. Запросы к API или SDK, связанные с ключом API, при этом будут обрабатываться, а запросы, не связанные с ключом, – нет. API или SDK должен быть включен и поддерживать ограничение для приложений.

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

  1. Откройте Google Cloud Platform Console.
  2. Выберите в раскрывающемся меню проект, содержащий нужный ключ API.
  3. Нажмите кнопку меню и выберите API и сервисы > Учетные данные.
  4. На странице Учетные данные нажмите на название нужного ключа API.
  5. Задайте ограничения на странице Ограничение и переименование ключа API:
    • Ограничения для приложений
      • Выберите Приложения для Android и следуйте инструкциям.
      • Нажмите + Название пакета и цифровой отпечаток.
      • Укажите название пакета и цифровой отпечаток сертификата 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
      • Выберите Ограничить ключ.
      • Нажмите Выбрать API и выберите Maps SDK for Android.
        Если в списке нет Maps SDK for Android, включите этот SDK.
    • Нажмите СОХРАНИТЬ.

Где получить цифровой отпечаток 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 по добавлению подписи в приложения.

Пользователи премиум-плана и те, кто перешел на другой план

Пользователи премиум-плана и те, кто перешел с него на модель с оплатой по мере использования платформы Google Карт, могут применять для аутентификации запросов ключ API или идентификатор клиента. Подробная информация приведена в обзорной статье о получении ключей API в документации для пользователей премиум-плана.