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

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

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

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

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

О протоколе OAuth

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

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

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

Об областях действия OAuth

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

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

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

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

В этом примере описывается, как использовать токен OAuth, предоставленный учетными данными приложения по умолчанию (ADC), для выполнения вызова. Информацию об использовании ADC для вызова API Google с помощью клиентских библиотек см. в разделе Аутентификация с использованием клиентских библиотек .

Предварительные условия

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

  1. Если вы еще этого не сделали, создайте проект и включите оплату, выполнив действия, описанные в разделе «Настройка в Google Cloud Console» .
  2. Установите и инициализируйте CLI gcloud .
  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 POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
  "travelMode": "DRIVE",
}' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "X-Goog-FieldMask: routes.duration,routes.distanceMeters" \
"https://routes.googleapis.com/directions/v2:computeRoutes"

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

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