Использовать OAuth

Road Management Insights использует Roads Selection API в качестве основного компонента, который предоставляет данные о дорогах в BigQuery и Pub/Sub.

Использовать OAuth

API выбора дорог поддерживает использование OAuth 2.0 для аутентификации. Google поддерживает распространённые сценарии OAuth 2.0, например, для веб-сервера.

В этом документе описывается, как передать токен OAuth в вызов API Roads Selection в вашей среде разработки . Инструкции по использованию OAuth в рабочей среде см. в статье «Аутентификация в Google» .

Прежде чем начать

Прежде чем начать использовать Roads Selection API, вам понадобится проект с платёжной учётной записью и включённым Roads Selection API. Мы рекомендуем создать несколько владельцев проекта и администраторов по выставлению счёта, чтобы у вашей команды всегда был доступ к этим ролям. Подробнее см. в разделе Настройка в Cloud Console .

О OAuth

Существует множество способов создания и управления токенами доступа с помощью OAuth в зависимости от вашей среды развертывания.

Например, система Google OAuth 2.0 поддерживает межсерверное взаимодействие, например, между вашим приложением и службой Google. Для этого сценария вам потребуется учётная запись службы, принадлежащая вашему приложению, а не отдельному конечному пользователю. Ваше приложение обращается к API Google от имени учётной записи службы, поэтому пользователи не участвуют в этом напрямую. Подробнее о методах аутентификации см. в статье «Аутентификация в Google» .

В качестве альтернативы вы можете использовать API Roads Selection в составе мобильного приложения для Android или iOS. Общую информацию об использовании OAuth с API Roads Selection, включая информацию об управлении токенами доступа для различных сред развертывания, см. в статье «Использование OAuth 2.0 для доступа к API Google» .

О областях OAuth

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

  • https://www.googleapis.com/auth/cloud-platform

Пример: попробуйте вызовы REST API в локальной среде разработки.

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

В этом примере описывается, как использовать токен OAuth, предоставленный Application Default Credentials (ADC), для выполнения вызова. Сведения об использовании ADC для вызова API Google с использованием клиентских библиотек см. в разделе «Аутентификация с использованием клиентских библиотек» .

Предпосылки

Прежде чем вы сможете сделать запрос REST с помощью ADC, используйте Google Cloud CLI для предоставления учетных данных ADC:

  1. Если вы еще этого не сделали, создайте проект и включите выставление счетов, следуя инструкциям в разделе Настройка в консоли Google Cloud .
  2. Установите и инициализируйте gcloud CLI .
  3. Выполните следующую команду gcloud на локальном компьютере, чтобы создать файл учетных данных:

    gcloud auth application-default login
  4. Отобразится экран входа. После входа ваши учётные данные будут сохранены в локальном файле учётных данных, используемом 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 'X-Goog-User-Project: PROJECT_NUMBER' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
https://roads.googleapis.com/selection/v1/projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID

Поиск неисправностей

Если ваш запрос возвращает сообщение об ошибке «Учетные данные конечного пользователя не поддерживаются этим API», см. раздел Учетные данные пользователя не работают .