Прежде чем вы начнете
Прежде чем вы начнете использовать Places SDK для Android, вам нужен проект с платежным аккаунтом и включенным Places SDK для Android. Дополнительные сведения см. в разделе Настройка в Cloud Console .
Создание ключей API
Ключ API — это уникальный идентификатор, который аутентифицирует запросы, связанные с вашим проектом, для целей использования и выставления счетов. У вас должен быть хотя бы один ключ API, связанный с вашим проектом.
Чтобы создать ключ API:
Приставка
Перейдите на страницу « Платформа Google Карт» > «Учетные данные ».
- На странице Учетные данные щелкните Создать учетные данные > Ключ API .
В диалоговом окне создания ключа API отображается только что созданный ключ API. - Щелкните Закрыть.
Новый ключ API указан на странице Учетные данные в разделе Ключи API .
(Не забудьте ограничить ключ API перед его использованием в рабочей среде.)
Облачный SDK
gcloud alpha services api-keys create \ --project "PROJECT" \ --display-name "DISPLAY_NAME"
Узнайте больше о Google Cloud SDK , установке Cloud SDK и следующих командах:
Ограничение ключей API
Google настоятельно рекомендует вам ограничивать свои ключи API, ограничивая их использование только теми API, которые необходимы для вашего приложения. Ограничение ключей API повышает безопасность вашего приложения, защищая его от необоснованных запросов. Дополнительные сведения см. в разделе Рекомендации по безопасности API .
Когда вы ограничиваете свой ключ API, вы должны предоставить отпечаток сертификата SHA-1 ключа подписи, который использовался для подписи приложения. Существует два типа сертификатов:
- Сертификат отладки : используйте этот тип сертификата только с тестируемыми приложениями и другим нерабочим кодом. Не пытайтесь опубликовать приложение, подписанное сертификатом отладки. Инструменты Android SDK автоматически создают этот сертификат при запуске отладочной сборки.
- Сертификат выпуска . Используйте этот сертификат, когда будете готовы выпустить приложение в магазин приложений. Инструменты Android SDK создают этот сертификат при запуске сборки выпуска.
Дополнительные сведения о цифровых сертификатах см. в руководстве « Подпишите свое приложение ».
Сведения о том, как получить отпечаток сертификата, см. в разделе Аутентификация вашего клиента . Если вместо этого вы используете Play App Signing , вы должны перейти на страницу подписания приложения в Play Console, чтобы получить отпечаток своего сертификата.
Чтобы ограничить ключ API:
Приставка
Перейдите на страницу « Платформа Google Карт» > «Учетные данные ».
- Выберите ключ API, для которого вы хотите установить ограничение. Появится страница свойств ключа 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
- Ограничения API:
- Щелкните Ограничить ключ .
- Выберите Places API в раскрывающемся списке Select APIs . Если Places API нет в списке, вам необходимо включить его.
- Чтобы завершить изменения, нажмите Сохранить .
Облачный SDK
Список существующих ключей.
gcloud services api-keys list --project="PROJECT"
Снимите существующие ограничения для существующего ключа.
gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \ --clear-restrictions
Установите новые ограничения для существующего ключа.
gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \ --api_target="places-backend.googleapis.com" --allowed-application="sha1_fingerprint=SHA1_FINGERPRINT,package_name=ANDROID_PACKAGE_NAME"
Узнайте больше о Google Cloud SDK , установке Cloud SDK и следующих командах:
Поиск информации о сертификате вашего приложения
Ключ API основан на сокращенной форме цифрового сертификата вашего приложения, известной как отпечаток SHA-1 . Чтобы отобразить отпечаток SHA-1 для вашего сертификата, сначала убедитесь, что вы используете правильный сертификат. У вас может быть два сертификата:
- Сертификат отладки . Инструменты Android SDK автоматически генерируют этот сертификат при выполнении отладочной сборки. Используйте этот сертификат только с приложениями, которые вы тестируете. Не пытайтесь опубликовать приложение, подписанное сертификатом отладки. Сертификат отладки более подробно описан в разделе Подписание в режиме отладки в документации для разработчиков Android.
- Сертификат выпуска . Инструменты Android SDK генерируют этот сертификат при сборке выпуска. Вы также можете сгенерировать этот сертификат с помощью программы
keytool
. Используйте этот сертификат, когда будете готовы выпустить свое приложение для всего мира.
Использование Gradle
Gradle позволяет очень легко получить информацию о подписи вашего приложения. Просто запустите ./gradlew signingReport
.
Вывод должен выглядеть примерно так:
Task :app:signingReport Variant: debug Config: debug Store: ~/.android/debug.keystore Alias: AndroidDebugKey MD5: 76:4E:BF:C3:59:DA:D3:8F:98:D6:3C:DB:87:A4:5B:E7 SHA1: 99:8E:73:B8:3A:A3:A3:C4:C1:D4:19:08:F6:7E:9E:F6:75:29:4C:B2 SHA-256: 6C:01:12:53:90:94:73:B5:66:D6:07:FF:A5:6F:AB:30:AE:99:20:55:0F:B3:12:22:4C:46:7E:02:3D:7E:6D:1D Valid until: Friday, June 25, 2049 ---------- Variant: release Config: release Store: app/keystore.jks Alias: keystore MD5: 1E:63:0F:14:67:E0:04:BD:98:4C:EB:2B:09:EF:7E:1E SHA1: 2C:DF:9F:D1:A3:0D:1E:01:48:34:5D:91:52:0B:D8:8A:5A:07:45:C3 SHA-256: 12:66:CE:4B:90:FD:64:1A:4D:79:9E:78:AD:59:0C:21:D8:53:61:EE:2B:90:E4:67:CE:65:A0:76:04:13:23:89 Valid until: Tuesday, September 29, 2116
Вручную
Выполните следующие действия, чтобы отобразить отпечаток SHA-1 сертификата с помощью программы keytool
с параметром -v
. Дополнительные сведения о Keytool см. в документации Oracle .
Сертификат отладки
Отображение отпечатка сертификата отладки
Найдите файл хранилища ключей отладки. Имя файла —
debug.keystore
, и он создается при первой сборке проекта. По умолчанию он хранится в том же каталоге, что и файлы вашего виртуального устройства Android (AVD):- macOS и Linux :
~/.android/
- Windows Vista и Windows 7 :
C:\Users\your_user_name\.android\
- macOS и Linux :
Перечислите отпечаток 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
Сертификат выпуска
Отображение отпечатка сертификата выпуска
Найдите файл хранилища ключей сертификата выпуска. Для хранилища ключей выпуска нет места или имени по умолчанию. Если вы не укажете его при сборке приложения для выпуска, сборка оставит ваш
.apk
неподписанным, и вам придется подписать его, прежде чем вы сможете его опубликовать. Для сертификата выпуска вам также потребуется псевдоним сертификата и пароли для хранилища ключей и сертификата. Вы можете перечислить псевдонимы для всех ключей в хранилище ключей, введя:keytool -list -keystore your_keystore_name
Замените
your_keystore_name
полным путем и именем хранилища ключей, включая расширение.keystore
. Вам будет предложено ввести пароль хранилища ключей. Затемkeytool
отображает все псевдонимы в хранилище ключей.Введите следующее в терминале или командной строке:
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 двузначных шестнадцатеричных чисел, разделенных двоеточиями.