Geocoding API поддерживает использование OAuth 2.0 для аутентификации. Google поддерживает общие сценарии OAuth 2.0, такие как сценарии для веб-сервера.
В этом документе описывается, как передать токен OAuth в вызов Geocoding API в вашей среде разработки . Инструкции по использованию OAuth в производственной среде см. в разделе Аутентификация в Google .
Прежде чем начать
Прежде чем начать использовать Geocoding API, вам нужен проект с учетной записью выставления счетов и включенным Geocoding API. Мы рекомендуем создать несколько владельцев проекта и администраторов выставления счетов, чтобы у вас всегда был кто-то с этими ролями, доступный для вашей команды. Чтобы узнать больше, см. Настройка в Cloud Console .
О OAuth
Существует множество способов создания и управления токенами доступа с помощью OAuth в зависимости от вашей среды развертывания.
Например, система Google OAuth 2.0 поддерживает взаимодействия сервер-сервер, например, между вашим приложением и службой Google. Для этого сценария вам понадобится учетная запись службы, которая принадлежит вашему приложению, а не отдельному конечному пользователю. Ваше приложение вызывает API Google от имени учетной записи службы, поэтому пользователи не участвуют напрямую. Для получения дополнительной информации о методах аутентификации см. раздел Аутентификация в Google .
В качестве альтернативы вы можете использовать API геокодирования как часть мобильного приложения Android или iOS. Для получения общей информации об использовании OAuth с API геокодирования, включая информацию об управлении токенами доступа для различных сред развертывания, см. Использование OAuth 2.0 для доступа к API Google .
О областях действия OAuth
Для использования OAuth с Geocoding API токену OAuth должна быть назначена правильная область действия. Geocoding API поддерживает следующие области действия:
-
https://www.googleapis.com/auth/maps-platform.geocode
— Используйте со всеми конечными точками API геокодирования. -
https://www.googleapis.com/auth/maps-platform.geocode.address
— Используйте только сGeocodeAddress
для прямого геокодирования. -
https://www.googleapis.com/auth/maps-platform.geocode.location
— Используйте только сGeocodeLocation
для обратного геокодирования. -
https://www.googleapis.com/auth/maps-platform.geocode.place
— Используйте только сGeocodePlace
для геокодирования мест.
Также вы можете использовать общую https://www.googleapis.com/auth/cloud-platform
область действия для всех конечных точек Geocoding API. Эта область действия полезна во время разработки, поскольку она является областью действия по умолчанию, используемой при создании токенов с использованием gcloud
.
Пример: попробуйте вызовы REST API в локальной среде разработки.
Если вы хотите попробовать API геокодирования с использованием токена OAuth, но у вас нет настроенной среды для генерации токенов, вы можете использовать процедуру, описанную в этом разделе, для выполнения вызова.
В этом примере описывается, как использовать токен OAuth, предоставленный Application Default Credentials (ADC), для совершения вызова. Информацию об использовании ADC для вызова API Google с использованием клиентских библиотек см. в разделе Аутентификация с использованием клиентских библиотек .
Предпосылки
Прежде чем вы сможете сделать запрос REST с помощью ADC, используйте Google Cloud CLI, чтобы предоставить учетные данные для ADC:
- Если вы еще этого не сделали, создайте проект и включите выставление счетов, следуя инструкциям в разделе Настройка в Google Cloud Console .
- Установите и инициализируйте gcloud CLI .
Выполните следующую команду
gcloud
на локальном компьютере, чтобы создать файл учетных данных:gcloud auth application-default login
- Отображается экран входа в систему. После входа в систему ваши учетные данные сохраняются в локальном файле учетных данных, используемом ADC .
Дополнительную информацию см. в разделе «Локальная среда разработки» в документации «Предоставление учетных данных для учетных данных приложения по умолчанию» .
Сделайте REST-запрос
В этом примере вы передаете два заголовка запроса:
Передайте токен OAuth в заголовке
Authorization
, используя следующую команду для генерации токена:gcloud auth application-default print-access-token
Возвращенный токен имеет область действия
https://www.googleapis.com/auth/cloud-platform.
- Передайте идентификатор или имя вашего проекта Google Cloud, в котором включена оплата в заголовке
X-Goog-User-Project
. Чтобы узнать больше, см. Настройка в Cloud Console .
В следующем примере выполняется вызов API геокодирования с использованием токена OAuth:
curl -X GET -H 'Content-Type: application/json' \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://geocode.googleapis.com/v4beta/geocode/address/1600+Amphitheatre+Parkway,+Mountain+View,+CA"
Поиск неисправностей
Если ваш запрос возвращает сообщение об ошибке, указывающее на то, что учетные данные конечного пользователя не поддерживаются этим API, см. раздел Учетные данные пользователя не работают .