Использование ключей API

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

Подготовка

Чтобы начать использовать Maps SDK для Android, вам необходимо создать проект с платежным аккаунтом и включить Maps SDK для Android. Подробнее о процессе настройки в Cloud Console

Как создать ключи API

Ключ API – это уникальный идентификатор, который используется для аутентификации запросов, связанных с вашим проектом. Он нужен для учета использования API и оплаты. С вашим проектом должен быть связан хотя бы один ключ API.

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

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

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

  2. На странице Учетные данные нажмите Создать учетные данные > Ключ API.
    Появится диалоговое окно с созданным ключом API.
  3. Нажмите Закрыть.
    Новый ключ API можно будет найти в разделе Ключи API на странице Учетные данные.
    Не забудьте настроить ограничения для ключа API перед его использованием.

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

В этом разделе рассказывается, как настроить безопасный вызов ключа API вашим приложением. Вводить ключ API в систему управления версиями нежелательно, поэтому мы рекомендуем хранить его в файле local.properties, который находится в корневом каталоге проекта. Подробнее о файле local.properties рассказывается в описании файлов свойств Gradle.

Чтобы вам было проще работать, используйте Secrets Gradle Plugin для Android.

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

  1. В Android Studio откройте файл build.gradle уровня приложения и добавьте в элемент plugins приведенный ниже код.
    id 'com.google.secrets_gradle_plugin' version '0.5'
        
  2. Сохраните файл и синхронизируйте проект с Gradle.
  3. Откройте файл local.properties в каталоге уровня проекта и добавьте в этот файл приведенный ниже код. Укажите вместо YOUR_API_KEY свой ключ API.
    MAPS_API_KEY=YOUR_API_KEY
        
  4. Сохраните файл и синхронизируйте проект с Gradle.
  5. В файле AndroidManifest.xml найдите раздел com.google.android.geo.API_KEY и измените android:value attribute следующим образом:
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="${MAPS_API_KEY}" />
        

Примечание. Как показано выше, рекомендуемое имя метаданных для ключа 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 вам потребуется указать цифровой отпечаток сертификата SHA-1 ключа, который использовался для подписи в приложении. Существует два типа сертификатов.

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

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

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

  1. Перейдите на страницу APIs & Services > Credentials (API и сервисы > Учетные данные).

    Перейти на страницу Credentials (Учетные данные)

  2. Выберите нужный ключ API. Откроется страница со свойствами ключа API.
  3. В разделе Key restrictions (Ограничения для ключа) установите следующие ограничения:
    • Ограничения для приложений:
      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
        Информацию о том, как получить цифровой отпечаток сертификата, вы можете найти в разделе об аутентификации клиентов. Если же вы используете функцию подписания приложений в Google Play, вы можете найти цифровой отпечаток сертификата на странице подписания приложений в Play Console.
    • Ограничения для API:
      1. Нажмите Применить ограничения для ключа.
      2. В раскрывающемся списке Выберите API нажмите Maps SDK для Android. Если Maps SDK для Android там нет, его необходимо включить.
  4. Нажмите Сохранить.