Interfejs Places API (nowość) obsługuje protokół OAuth 2.0 do uwierzytelniania. Google obsługuje typowe scenariusze korzystania z protokołu OAuth 2.0, na przykład dla serwera WWW.
Z tego dokumentu dowiesz się, jak przekazać token OAuth do wywołania interfejsu Places API (New) 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 Places API (nowego), musisz mieć projekt z kontem rozliczeniowym i włączonym interfejsem Places API (nowym). 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
W zależności od środowiska wdrożenia możesz tworzyć tokeny dostępu OAuth i nimi zarządzać na wiele sposobów.
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żywać interfejsu Places API (New) w ramach aplikacji mobilnej na Androida lub iOS. Ogólne informacje o używaniu OAuth w interfejsie Places API (New), 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.
Informacje o zakresach protokołu OAuth
Aby używać OAuth z interfejsem Places API (nowy), tokenowi OAuth należy przypisać zakres:
https://www.googleapis.com/auth/cloud-platform
Przykład: wypróbuj wywołania interfejsu REST API w lokalnym środowisku programistycznym
Jeśli chcesz wypróbować nowy interfejs Places API przy użyciu tokena OAuth, ale nie masz odpowiedniego środowiska konfiguracji w celu wygenerowania tokenów, możesz wykonać procedurę opisaną w tej sekcji.
W tym przykładzie opisano, 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 prześlesz żądanie REST za pomocą ADC, użyj interfejsu wiersza poleceń Google Cloud, aby podać dane logowania do ADC:
- 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.
- Zainstaluj i zainicjuj interfejs wiersza poleceń gcloud.
Uruchom to polecenie
gcloud
na komputerze lokalnym, aby utworzyć plik danych logowania:gcloud auth application-default login
- Wyświetli 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, w którym masz włączone płatności, w nagłówku
X-Goog-User-Project
. Więcej informacji: Skonfiguruj w Cloud Console.
W tym przykładzie wywołujemy interfejs Places API (New) za pomocą 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 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ą.