Użyj protokołu OAuth

Interfejs Routes API obsługuje uwierzytelnianie z użyciem OAuth 2.0. Google obsługuje typowe scenariusze korzystania z protokołu OAuth 2.0, na przykład dla serwera WWW.

Ten dokument opisuje, jak przekazać token OAuth do wywołania interfejsu Routes API w rozwojowego środowiska programistycznego. Instrukcje korzystania z protokołu OAuth w środowisku produkcyjnym, patrz Uwierzytelnianie w Google.

Zanim zaczniesz

Zanim zaczniesz korzystać z interfejsu Routes API, musisz mieć projekt z kontem rozliczeniowym i włączonym interfejsem Routes API. Zalecamy utworzenie wielu właścicieli projektów i administratorów rozliczeniowych, aby zawsze mieć kogoś o tych rolach dostępne dla Twojego zespołu. Więcej informacji znajdziesz w artykule Konfiguracja w konsoli Cloud.

Informacje o protokole OAuth

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

System Google OAuth 2.0 obsługuje na przykład interakcje między serwerami, takie jak między aplikacją a usługą Google. W tym scenariuszu potrzebujesz konta usługi, które jest kontem należącym do Twojej aplikacji, a nie do indywidualnego użytkownika końcowego. Twoje aplikacja wywołuje interfejsy API Google w imieniu konta usługi, więc użytkownicy nie są w to bezpośrednio zaangażowani. Więcej informacji o metodach uwierzytelniania znajdziesz w artykule Uwierzytelnianie w Google.

Możesz też użyć interfejsu Routes API w aplikacji mobilnej na Androida lub iOS. Ogólne informacje o używaniu protokołu OAuth z interfejsem Routes API, w tym o zarządzaniu tokeny dostępu do różnych środowisk wdrożeniowych, zobacz Korzystanie z protokołu OAuth 2.0 na potrzeby dostępu do interfejsów API Google

Informacje o zakresach protokołu OAuth

Aby używać protokołu OAuth z interfejsem Routes API, token OAuth musi mieć przypisany zakres:

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

Przykład: wypróbuj wywołania interfejsu API REST w lokalnym środowisku programistycznym

Jeśli chcesz wypróbować interfejs Routes API przy użyciu tokena OAuth, ale nie masz środowiska konfiguracji w celu wygenerowania tokenów, możesz wykonać procedurę opisaną w tej sekcji.

Ten przykład opisuje, jak używać tokena OAuth udostępnianego przez Domyślne uwierzytelnianie aplikacji (ADC) aby zadzwonić. Informacje o używaniu ADC do wywoływania interfejsów API Google przy użyciu bibliotek klienta znajdziesz tutaj: Uwierzytelnij się za pomocą bibliotek klienta.

Wymagania wstępne

Zanim utworzysz żądanie REST za pomocą ADC, użyj Google Cloud CLI aby podać dane logowania do ADC:

  1. Utwórz projekt i włącz płatności, wykonując czynności opisane w Skonfiguruj go w konsoli Google Cloud.
  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 lokalnego pliku danych logowania używanego przez ADC.

Więcej informacji: Lokalne środowisko programistyczne strony Podaj dane logowania do domyślnych danych uwierzytelniających aplikacji dokumentacji.

Wyślij żądanie REST

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

  • Przekaż token OAuth w nagłówku Authorization za pomocą tego kodu aby wygenerować token:

    gcloud auth application-default print-access-token

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

  • Przekaż identyfikator lub nazwę projektu Google Cloud, który ma włączone płatności Nagłówek X-Goog-User-Project. Więcej informacji: Skonfiguruj w Cloud Console.

Ten przykład wywołuje interfejs Routes API za pomocą tokena 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"

Rozwiązywanie problemów

Jeśli żądanie zwróci komunikat o błędzie informujący o tym, że dane logowania użytkownika nie są obsługiwane przez ten interfejs API, Więcej informacji: Dane logowania użytkownika nie działają.