Użyj protokołu OAuth

Interfejs Geocoding API obsługuje używanie OAuth 2.0 do uwierzytelniania. Google obsługuje typowe scenariusze korzystania z protokołu OAuth 2.0, takie jak serwer internetowy.

Ten dokument wyjaśnia, jak przekazać token OAuth do wywołania interfejsu Geocoding API w środowisku rozwoju. Instrukcje dotyczące korzystania z protokołu OAuth w środowisku produkcyjnym znajdziesz w artykule Uwierzytelnianie w Google.

Zanim zaczniesz

Zanim zaczniesz korzystać z interfejsu Geocoding API, musisz mieć projekt z kontem rozliczeniowym i włączonym interfejsem Geocoding API. Zalecamy utworzenie kilku właścicieli projektu i administratorów rozliczeń, aby zawsze mieć w zespole osoby pełniące te role. Więcej informacji znajdziesz w artykule Konfigurowanie w konsoli Cloud Console.

Informacje o protokole OAuth

W zależności od środowiska wdrożenia możesz tworzyć tokeny dostępu OAuth i nimi zarządzać na wiele sposobów.

Na przykład system Google OAuth 2.0 obsługuje interakcje między serwerami, na przykład między aplikacją a usługą Google. W tym scenariuszu potrzebujesz konta usługi, które należy do Twojej aplikacji, a nie do użytkownika. Aplikacja wywołuje interfejsy API Google w imieniu konta usługi, więc użytkownicy nie biorą bezpośrednio udziału w tym procesie. Więcej informacji o metodach uwierzytelniania znajdziesz w artykule Uwierzytelnianie w Google.

Możesz też używać interfejsu Geocoding API w ramach aplikacji mobilnej na Androida lub iOS. Ogólne informacje o używaniu OAuth z interfejsem Geocoding API, w tym o zarządzaniu tokenami dostępu w różnych środowiskach wdrożeniowych, znajdziesz w artykule Uzyskiwanie dostępu do interfejsów API Google za pomocą OAuth 2.0.

Zakresy protokołu OAuth

Aby używać OAuth z interfejsem Geocoding API, należy przypisać tokenowi OAuth odpowiedni zakres. Geocoding API obsługuje te zakresy:

  • https://www.googleapis.com/auth/maps-platform.geocode — Używaj we wszystkich punktach końcowych Geocoding API.
  • https://www.googleapis.com/auth/maps-platform.geocode.address — Używaj tylko z GeocodeAddress do geokodowania wstecznego.
  • https://www.googleapis.com/auth/maps-platform.geocode.locationUżywaj tylko w połączeniu z GeocodeLocation do odwrotnego geokodowania.
  • https://www.googleapis.com/auth/maps-platform.geocode.place — Używaj tylko z wartością GeocodePlace do geokodowania miejsc.

Możesz też użyć ogólnego zakresu https://www.googleapis.com/auth/cloud-platform dla wszystkich punktów końcowych interfejsu Geocoding API. Ten zakres jest przydatny podczas tworzenia aplikacji, ponieważ jest domyślnym zakresem używanym podczas tworzenia tokenów za pomocą funkcji gcloud.

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

Jeśli chcesz wypróbować interfejs Geocoding API za pomocą tokena OAuth, ale nie masz skonfigurowanego środowiska do generowania tokenów, możesz wykonać tę procedurę, aby wywołać interfejs.

W tym przykładzie opisujemy, jak użyć tokena OAuth udostępnionego przez domyślne dane logowania aplikacji (ADC) do wywołania interfejsu. Informacje o używaniu usługi ADC do wywoływania interfejsów API Google za pomocą bibliotek klienta znajdziesz w artykule Uwierzytelnianie za pomocą bibliotek klienta.

Wymagania wstępne

Zanim będzie można wysłać żądanie REST za pomocą ADC, należy użyć interfejsu wiersza poleceń Google Cloud, aby podać dane logowania do ADC:

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

    gcloud auth application-default login
  4. Wyświetli się ekran logowania. Po zalogowaniu się Twoje dane logowania są przechowywane w lokalnym pliku z danymi logowania używanym przez ADC.

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

Przesyłanie żądania REST

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

  • Przekaż token OAuth w nagłówku Authorization, generując go za pomocą tego polecenia:

    gcloud auth application-default print-access-token

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

  • Przekaż w nagłówku X-Goog-User-Project identyfikator lub nazwę projektu Google Cloud, w którym włączone są płatności. Więcej informacji znajdziesz w artykule Konfigurowanie w konsoli Cloud.

W tym przykładzie wywołujemy interfejs Geocoding API za pomocą tokena OAuth:

curl -X GET -H 'Content-Type: application/json' \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
"https://geocode.googleapis.com/v4beta/geocode/address/1600+Amphitheatre+Parkway,+Mountain+View,+CA"

Rozwiązywanie problemów

Jeśli żądanie zwróci komunikat o błędzie informujący, że dane logowania użytkownika nie są obsługiwane przez to API, zapoznaj się z artykułem Dane logowania użytkownika nie działają.