Użyj protokołu OAuth

Interfejs Route Optimization API obsługuje uwierzytelnianie przy użyciu protokołu OAuth 2.0. Google obsługuje typowe scenariusze korzystania z protokołu OAuth 2.0, takie jak te stosowane w przypadku serwera WWW.

Ten dokument opisuje sposób przekazywania tokena OAuth do wywołania Route Optimization API w środowisku programistycznym. Instrukcje korzystania z protokołu OAuth w środowisku produkcyjnym znajdziesz w artykule na temat uwierzytelniania w Google.

Zanim zaczniesz

Zanim zaczniesz korzystać z interfejsu Route Optimization API, musisz mieć projekt z kontem rozliczeniowym i włączonym interfejsem Route Optimization API. Zalecamy utworzenie wielu właścicieli projektu i administratorów rozliczeń, aby zawsze dysponować osobą z tymi rolami dostępną dla zespołu. Więcej informacji znajdziesz w artykule Konfigurowanie w Cloud Console.

Informacje o protokole OAuth

Istnieje wiele sposobów tworzenia tokenów dostępu z użyciem protokołu OAuth i zarządzania nimi w zależności od środowiska wdrożenia.

Na przykład system Google OAuth 2.0 obsługuje interakcje między serwerami, takie jak między Twoją aplikacją a usługą Google. W tej sytuacji potrzebujesz konta usługi, które należy do Twojej aplikacji, a nie do użytkownika końcowego. Aplikacja wywołuje interfejsy API Google w imieniu konta usługi, więc użytkownicy nie są bezpośrednio zaangażowani. Więcej informacji o metodach uwierzytelniania znajdziesz w artykule na temat uwierzytelniania w Google.

Możesz też użyć interfejsu Route Optimization API w aplikacji mobilnej na Androida lub iOS. Ogólne informacje o używaniu OAuth z interfejsem Route Optimization API, w tym informacje o zarządzaniu tokenami dostępu w różnych środowiskach wdrożenia, znajdziesz w artykule na temat używania OAuth 2.0 do uzyskiwania dostępu do interfejsów API Google.

Informacje o zakresach OAuth

Aby można było używać protokołu OAuth z interfejsem Route Optimization API, token OAuth musi być przypisany do zakresu:

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

Przykład: wypróbowanie wywołań interfejsu API REST w lokalnym środowisku programistycznym

Jeśli chcesz wypróbować interfejs Route Optimization API z wykorzystaniem tokena OAuth, ale nie masz skonfigurowanego środowiska do generowania tokenów, możesz wykonać wywołanie opisane w tej sekcji.

Ten przykład pokazuje, jak użyć tokena OAuth udostępnionego przez domyślne dane logowania aplikacji (ADC) do wykonania wywołania. Informacje o używaniu ADC do wywoływania interfejsów API Google przy użyciu bibliotek klienta znajdziesz w artykule Uwierzytelnianie przy użyciu bibliotek klienta.

Wymagania wstępne

Zanim wyślesz żądanie REST za pomocą ADC, użyj Google Cloud CLI do podania danych logowania do ADC:

  1. Jeśli jeszcze nie masz utworzonego projektu, utwórz go i włącz płatności, wykonując czynności opisane w artykule Konfigurowanie w Google Cloud Console.
  2. Zainstaluj i zainicjuj interfejs wiersza poleceń gcloud.
  3. Uruchom to polecenie gcloud na komputerze lokalnym, aby utworzyć plik danych logowania:

    gcloud auth application-default login
  4. Pojawi się ekran logowania. Gdy się zalogujesz, Twoje dane logowania zostaną zapisane w lokalnym pliku danych logowania używanym przez ADC.

Więcej informacji znajdziesz w sekcji Lokalne środowisko programistyczne w dokumentacji podawania danych logowania do domyślnych danych logowania aplikacji.

Wyślij żądanie REST

W tym przykładzie przekazujesz 2 nagłówki żądania:

  • Przekaż token OAuth w nagłówku Authorization, korzystając z tego polecenia:

    gcloud auth application-default print-access-token

    Zwrócony token ma zakres https://www.googleapis.com/auth/cloud-platform.

  • Określ typ treści żądania to application/json.

Ten przykład powoduje wywołanie interfejsu Route Optimization API przy użyciu tokena 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

Rozwiązywanie problemów

Jeśli żądanie zwraca komunikat o błędzie z informacją, że dane logowania użytkownika nie są obsługiwane przez ten interfejs API, zapoznaj się z sekcją Dane logowania użytkownika nie działają.