Interfejs Places Insights API obsługuje uwierzytelnianie za pomocą protokołu OAuth 2.0. Google obsługuje typowe scenariusze korzystania z protokołu OAuth 2.0, takie jak serwer internetowy.
Z tego dokumentu dowiesz się, jak przekazać token OAuth do wywołania interfejsu Places Insights 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 Places Insights API, musisz mieć projekt z kontem rozliczeniowym i włączonym interfejsem Places Insights API. Zalecamy utworzenie kilku właścicieli projektu i administratorów rozliczeń, aby w zespole zawsze była osoba pełniąca te role. Więcej informacji znajdziesz w artykule Konfigurowanie w konsoli Google 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.
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 Places Insights API w ramach aplikacji mobilnej na Androida lub iOS. Ogólne informacje o używaniu OAuth z interfejsem Places Insights API, w tym o zarządzaniu tokenami dostępu w różnych środowiskach wdrożenia, znajdziesz w artykule Uzyskiwanie dostępu do interfejsów API Google za pomocą OAuth 2.0.
Zakresy protokołu OAuth
Aby korzystać z protokołu OAuth w ramach interfejsu Places Insights API, tokenowi OAuth musi zostać przypisany 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ć interfejs Places Insights 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 opisano, jak używać tokena OAuth udostępnianego przez domyślne dane logowania aplikacji (ADC) do wywołania. 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 użyjesz żądania 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.
Aby utworzyć plik danych logowania, na komputerze lokalnym uruchom to polecenie
gcloud
:gcloud auth application-default login
- Wyświetli się ekran logowania. Po zalogowaniu się Twoje dane logowania są przechowywane w lokalnym pliku danych 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.
Wysył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 Google Cloud.
W tym przykładzie wywołujemy interfejs API Places Insights za pomocą tokena OAuth:
curl -X POST 'https://areainsights.googleapis.com/v1:computeInsights' \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_NUMBER_OR_ID" \ -H "Authorization: Bearer $TOKEN" \ --data '{ "insights":[ "INSIGHT_COUNT" ], "filter":{ "location_filter":{ "region":{ "place":"places/ChIJIQBpAG2ahYAR_6128GcTUEo" } }, "type_filter":{ "included_types":[ "restaurant" ] }, "price_levels":[ "PRICE_LEVEL_INEXPENSIVE" ] } }'
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 ten interfejs API, zapoznaj się z artykułem Dane logowania użytkownika nie działają.