API оптимизации маршрутов поддерживает использование OAuth 2.0 для аутентификации. Google поддерживает распространенные сценарии OAuth 2.0, например сценарии для веб-сервера.
В этом документе описывается, как передать токен OAuth в вызов API оптимизации маршрутов в вашей среде разработки . Инструкции по использованию OAuth в производственной среде см. в разделе Аутентификация в Google .
Прежде чем начать
Прежде чем вы начнете использовать API оптимизации маршрутов, вам понадобится проект с учетной записью для выставления счетов и включенным 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 с API оптимизации маршрутов, токену OAuth необходимо назначить область действия:
-
https://www.googleapis.com/auth/cloud-platform
Пример. Попробуйте вызовы REST API в вашей локальной среде разработки.
Если вы хотите попробовать API оптимизации маршрутов с использованием токена OAuth, но у вас нет настройки среды для создания токенов, вы можете использовать процедуру, описанную в этом разделе, для выполнения вызова.
В этом примере описывается, как использовать токен OAuth, предоставленный учетными данными приложения по умолчанию (ADC), для выполнения вызова. Информацию об использовании ADC для вызова API Google с помощью клиентских библиотек см. в разделе Аутентификация с использованием клиентских библиотек .
Предварительные условия
Прежде чем вы сможете выполнить запрос REST с помощью ADC, используйте Google Cloud CLI для предоставления учетных данных ADC:
- Если вы еще этого не сделали, создайте проект и включите оплату, выполнив действия, описанные в разделе «Настройка в Google Cloud Console» .
- Установите и инициализируйте CLI gcloud .
Запустите следующую команду
gcloud
на своем локальном компьютере, чтобы создать файл учетных данных:gcloud auth application-default login
- Отобразится экран входа в систему. После входа в систему ваши учетные данные сохраняются в локальном файле учетных данных, используемом ADC .
Дополнительные сведения см. в разделе «Локальная среда разработки» документации «Предоставление учетных данных для учетных данных приложения по умолчанию» .
Сделать REST-запрос
В этом примере вы передаете два заголовка запроса:
Передайте токен OAuth в заголовке
Authorization
, используя следующую команду для создания токена:gcloud auth application-default print-access-token
Возвращенный токен имеет область действия
https://www.googleapis.com/auth/cloud-platform.
- Укажите тип содержимого тела запроса —
application/json
.
В следующем примере выполняется вызов API оптимизации маршрутов с использованием токена OAuth:
curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ --data-binary @- << EOM { "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.73881799999999, "longitude": -122.4161 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.79581, "longitude": -122.4218856 } } ] } ], "vehicles": [ { "startLocation": { "latitude": 37.73881799999999, "longitude": -122.4161 }, "endLocation": { "latitude": 37.73881799999999, "longitude": -122.4161 } } ], "globalStartTime": "2023-01-13T16:00:00-08:00", "globalEndTime": "2023-01-14T16:00:00-08:00" } } EOM
Поиск неисправностей
Если ваш запрос возвращает сообщение об ошибке о том, что учетные данные конечного пользователя не поддерживаются этим API, см. раздел «Учетные данные пользователя не работают» .