Places API (nowość) obsługuje uwierzytelnianie OAuth 2.0. Google obsługuje typowe scenariusze korzystania z protokołu OAuth 2.0, takie jak te stosowane w przypadku serwera WWW.
W tym dokumencie opisujemy, jak przekazywać token OAuth do wywołania interfejsu Places API (nowego) 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 Places API (nowość), musisz mieć projekt z kontem rozliczeniowym i włączonym nowym interfejsem Places 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 Places API (nowość) w aplikacji mobilnej na Androida lub iOS. Ogólne informacje o korzystaniu z protokołu OAuth z interfejsem Places API (nowość) oraz informacje o zarządzaniu tokenami dostępu do różnych środowisk wdrożenia znajdziesz w artykule Korzystanie z protokołu OAuth 2.0 do uzyskiwania dostępu do interfejsów API Google.
Informacje o zakresach OAuth
Aby korzystać z protokołu OAuth z interfejsem Places API (nowość), musisz przypisać zakres OAuth:
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ć nowy interfejs Places API z użyciem 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:
- 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.
- Zainstaluj i zainicjuj interfejs wiersza poleceń gcloud.
Uruchom to polecenie
gcloud
na komputerze lokalnym, aby utworzyć plik danych logowania:gcloud auth application-default login
- 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.
- W nagłówku
X-Goog-User-Project
podaj identyfikator lub nazwę projektu Google Cloud z włączonymi płatnościami. Więcej informacji znajdziesz w artykule o konfiguracji w Cloud Console.
W tym przykładzie wywołujemy nowy interfejs Places API (nowy) przy użyciu tokena OAuth:
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food in Sydney, Australia" }' \ -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: places.displayName,places.formattedAddress" \ "https://places.googleapis.com/v1/places:searchText"
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ą.