OAuth 사용

Route Optimization API는 인증에 OAuth 2.0 사용을 지원합니다. Google은 웹 서버와 같은 일반적인 OAuth 2.0 시나리오를 지원합니다.

이 문서에서는 OAuth 토큰을 개발 환경에 따라 다릅니다. OAuth를 사용하는 방법에 대한 안내는 프로덕션 환경에 대한 자세한 내용은 Google의 인증.

시작하기 전에

Route Optimization API를 사용하려면 먼저 결제 계정이 있고 Route Optimization API가 사용 설정된 프로젝트입니다. 여러 개의 프로젝트 소유자 및 결제 관리자(이 역할을 맡은 담당자가 항상 존재함) 사용할 수 있습니다 자세한 내용은 Cloud Console에서 설정하기를 참고하세요.

OAuth 정보

배포에 따라 다양한 방법으로 OAuth로 액세스 토큰을 만들고 관리할 수 있습니다. 환경입니다

예를 들어, Google OAuth 2.0 시스템은 Google 서비스 간에 통신할 수 있습니다 이 시나리오에서는 은 개별 최종 사용자가 아니라 애플리케이션에 속한 계정입니다. 내 애플리케이션이 서비스 계정을 대신하여 Google API를 호출하므로 사용자가 직접 관여하지 않습니다. 인증 방법에 대한 자세한 내용은 다음을 참조하세요. Google에서의 인증

또는 Android 또는 iOS 모바일 앱의 일부로 Route Optimization API를 사용할 수도 있습니다. 관리에 대한 정보를 포함하여 Route Optimization API에서 OAuth를 사용하는 방법에 대한 일반적인 정보 다른 배포 환경에 대한 자세한 내용은 다음을 참조하세요. OAuth 2.0을 사용하여 Google API에 액세스하기

OAuth 범위 정보

Route Optimization API에서 OAuth를 사용하려면 OAuth 토큰에 범위를 할당해야 합니다.

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

예: 로컬 개발 환경에서 REST API 호출 시도

OAuth 토큰을 사용하여 Route Optimization API를 사용해 보고 싶지만 환경이 없는 경우 토큰을 생성하도록 설정하려면 이 섹션의 절차에 따라 호출할 수 있습니다.

이 예에서는 애플리케이션 기본 사용자 인증 정보 (ADC) 전화를 겁니다. ADC를 사용하여 클라이언트 라이브러리로 Google API를 호출하는 방법에 대한 자세한 내용은 다음을 참조하세요. 클라이언트 라이브러리를 사용하여 인증

기본 요건

ADC를 사용하여 REST 요청을 하려면 먼저 Google Cloud CLI를 사용하세요. 를 사용하여 ADC에 사용자 인증 정보를 제공합니다.

  1. 아직 프로젝트를 만들지 않은 경우 다음 단계에 따라 프로젝트를 만들고 결제를 사용 설정합니다. Google Cloud 콘솔에서 설정
  2. gcloud CLI를 설치하고 초기화합니다.
  3. 로컬 머신에서 다음 gcloud 명령어를 실행하여 사용자 인증 정보 파일:

    gcloud auth application-default login
  4. 로그인 화면이 표시됩니다. 로그인한 후에는 사용자 인증 정보가 ADC에서 사용하는 로컬 사용자 인증 정보 파일.

자세한 내용은 로컬 개발 환경 섹션의 애플리케이션 기본 사용자 인증 정보에 대한 사용자 인증 정보 제공 문서를 참조하세요.

REST 요청

이 예에서는 두 개의 요청 헤더를 전달합니다.

  • 다음을 사용하여 Authorization 헤더에 OAuth 토큰을 전달합니다. 명령어를 사용하여 토큰을 생성합니다.

    gcloud auth application-default print-access-token

    반환된 토큰의 범위는 https://www.googleapis.com/auth/cloud-platform.

  • 요청 본문 content-type을 application/json로 지정합니다.
를 통해 개인정보처리방침을 정의할 수 있습니다.

다음 예시에서는 OAuth 토큰을 사용하여 Route Optimization API를 호출합니다.

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에서 지원하지 않는 최종 사용자 인증 정보에 대한 오류 메시지를 반환하는 경우 사용자 인증 정보가 작동하지 않음을 참고하세요.