W tej dokumentacji znajdziesz szczegółowe instrukcje konfigurowania protokołu OAuth2.0 na aplikacji podczas uzyskiwania dostępu do interfejsów API hoteli, takich jak Travel Partner API i Price Interfejs API plików danych. Zapoznaj się z artykułem Korzystanie z protokołu OAuth 2.0 na potrzeby dostępu do interfejsów API Google. w celu autoryzacji aplikacji.
Konfiguracja protokołu OAuth 2.0
Protokół OAuth 2.0 wymaga od Ciebie identyfikacji się za pomocą konta usługi powiązane z Twoim kontem Google. Konto usługi wysyła dane prywatne w zamian za token dostępu OAuth 2.0. Następnie możesz użyć tego tokena w wywołania interfejsów API hoteli w przypadku danych tylko do odczytu, takich jak ceny, hotel czy dane do raportu diagnostycznego o pliku danych z cenami hoteli.
Tokeny dostępu są ważne przez godzinę (3600 sekund).
Jeśli wcześniej zaimplementowano funkcję ClientLogin, podejście OAuth 2.0 jest podobne, z tymi różnicami:
- Twoja aplikacja uzyskuje dostęp do interfejsu API za pomocą konta usługi Google.
- Gdy przekazujesz token dostępu OAuth 2.0 w nagłówku HTTP
Authorization
, i wywoływanie interfejsów API.
Aby skonfigurować konto pod kątem używania protokołu OAuth 2.0 z dowolnym interfejsem API Hotels, wykonaj te czynności:
Każdy z tych kroków jest opisany w dalszej części tego artykułu.
Krok 1. Utwórz nowy projekt w konsoli Google Cloud
Konsola Google Cloud służy do wyświetlania danych o ruchu i zarządzania nimi, uwierzytelnianie i informacje rozliczeniowe dla interfejsów API Google, które są wykorzystywane w Twoich projektach i ich używanie.
W konsoli Google Cloud projekt to zbiór ustawień, dane logowania i metadane dotyczące aplikacji, nad którą pracujesz, korzysta z interfejsów Google Developer API i zasobów Google Cloud.
Konsola Google Cloud służy też do generowania danych logowania do interfejsu API, Interfejsy API oraz możliwość zarządzania informacjami o zespole i informacjami rozliczeniowymi powiązanymi z Twoim projektem.
Aby utworzyć nowy projekt w konsoli Google Cloud:
Zaloguj się na swoje konto Gmail lub Google.
Otwórz konsolę Google Cloud. Jeśli jest to Twój pierwszy projekt, w widoku głównym zobaczysz opcję UTWÓRZ PROJEKT. przycisk:
Kliknij przycisk UTWÓRZ PROJEKT. W konsoli Google Cloud wyświetli się Okno Nowy projekt:
Wpisz przyjazną nazwę nowego projektu w polu Nazwa projektu. pola do wprowadzania danych. Poniżej tego pola konsola Google Cloud wygeneruje projekt. Identyfikator zapewniający unikalny identyfikator we wszystkich projektach. Przykład: jeśli wpiszesz „Mój nowy projekt”, konsola Google Cloud przypisze identyfikator taki jak
my-new-project-266022
Aby utworzyć nowy projekt, kliknij przycisk Utwórz.
W menu nawigacji kliknij Interfejsy API i usługi > Panel.
Poniższy obraz przedstawia menu nawigacyjne w lewym górnym rogu w konsoli Google Cloud. Wyświetli się widok Panel dotyczący projekt:
Więcej informacji znajdziesz w artykule Tworzenie projektów i zarządzanie nimi.
Krok 2. Utwórz konto usługi i wygeneruj jego dane logowania
Konta usługi są używane w ramach interakcji między serwerami, na przykład aplikacji internetowej i danych hoteli.
Aby utworzyć i skonfigurować konto usługi:
W widoku głównym Konsoli interfejsów API Google kliknij Dane logowania w nawigacji po lewej stronie. W konsoli Google Cloud wyświetli się Dane logowania. widok.
W widoku Dane logowania wyświetlane są identyfikatory klientów i dane logowania do w projektach AI. Aplikacja używa identyfikatora klienta, gdy wysyła żądanie Token dostępu OAuth 2.0. Nowe projekty nie mają klientów ani danych logowania .
Kliknij link Dane logowania w interfejsach API i usługach.
Kliknij przycisk Utwórz dane logowania i wybierz Klucz konta usługi. z filtra. Pojawi się widok Utwórz klucz konta usługi.
W filtrze Konto usługi wybierz Nowe konto usługi.
Wpisz nazwę i identyfikator konta usługi.
Nazwa może być dowolna, ale identyfikator konta musi być niepowtarzalny we wszystkich projektach. Konsola Google Cloud wygeneruje dla Ciebie unikalny identyfikator konta na podstawie podanej przez Ciebie nazwy.
Wybierz typ klucza JSON. Wymagany jest format JSON.
Kliknij przycisk Utwórz. Konsola Google Cloud generuje pary kluczy publicznych do projektu. Klucz prywatny jest zapisywany w domyślnym kluczu lokalizacja, w której przeglądarka zapisuje pobrane treści. Musisz pobrać plik w formacie
.JSON
.Klucza prywatnego używasz w skryptach lub innych aplikacjach, które uzyskują dostęp za pomocą interfejsu API.
Konsola Google Cloud wyświetla komunikat „Utworzono konto usługi” kiedy to zakończy generowanie kluczy.
Kliknij przycisk OK, rozumiem. Konsola Google Cloud spowoduje powrót do Widok Dane logowania. Aby potwierdzić szczegóły Twojego konta usługi oraz aby wyświetlić konto usługi powiązane z projektem, kliknij Zarządzaj kont usługi w tym widoku.
Z kontem usługi są teraz powiązane te dane logowania:
- Identyfikator klienta: unikalny identyfikator wykorzystywany przez aplikację, gdy żądania tokena dostępu OAuth 2.0.
- Adres e-mail: wygenerowany adres e-mail konta usługi w formacie „nazwa_konta@nazwa_projektu.google.com.iam.gserviceaccount.com”.
- Odciski cyfrowe certyfikatu: identyfikator klucza prywatnego, który został przez Ciebie użyty pobrano.
Aby dowiedzieć się więcej, przeczytaj artykuł Używanie protokołu OAuth 2.0 w aplikacjach między serwerami.
Krok 3. Przyznaj kontu usługi dostęp do danych Hotel Center
Ostatnim krokiem jest przyznanie nowemu kontu usługi dostępu do Twojego Hotel Center Konto usługi jest identyfikowane przez wygenerowany adres e-mail, który utworzony w poprzednim kroku. Przyznasz dostęp do tego konta, używając ustawienia udostępniania Hotel Center.
Jeśli nie masz odpowiednich uprawnień, aby dodać użytkowników do konta, skontaktuj się z Zespół ds. hoteli w Google za pomocą formularza kontaktowego i prośby o ustalenie prawa własności do: swoje konto. Możesz poprosić o przyznanie jednego lub kilku e-maili do właściciela. Więcej informacji o dostępie do Hotel Center znajdziesz w artykule Łączenie Hotel Center i Google Ads.
Aby przyznać kontu usługi dostęp do danych z Hotel Center:
W nowym oknie przeglądarki otwórz Hotel Center.
Na banerze Hotel Center by Google kliknij ikonę dodawania użytkownika, aby otworzyć okno udostępniania.
W polu Dodaj więcej osób wpisz adres e-mail usługi. konto, które chcesz dodać do Hotel Center.
Pozostaw zaznaczoną opcję Powiadom innych.
W filtrze kliknij Zarządzaj.
Kliknij przycisk Zaproś.
Po dodaniu użytkowników do Hotel Center konto usługi powinno zostać włączone do korzystania z interfejsu API w ciągu około 24 godzin.
Gdy Google powiadomi Cię, że dostęp przez interfejs API jest włączony dla Twojej usługi możesz zacząć korzystać z interfejsu API z protokołem OAuth 2.0.
Jak korzystać z protokołu OAuth 2.0
Aby uzyskać dostęp do interfejsu API, aplikacja musi się zidentyfikować w Google za pomocą adresu e-mail wygenerowanego przez konto usługi i klucza prywatnego. Mechanizm uwierzytelniania Google zamienia ten klucz na token dostępu OAuth 2.0, który przekazujesz w nagłówku Authorization
w wywołaniach interfejsu API aplikacji.
Więcej informacji znajdziesz w artykule Przygotowanie do delegowanego wywołania interfejsu API.
Zakresy
Oto SCOPES
for Hotels API:
Interfejs Travel Partner API: "https://www.googleapis.com/auth/travelpartner"
Interfejs Travel Partner Prices API: "https://travelpartnerprices.googleapis.com"
Interfejs API plików danych o cenach: "https://www.googleapis.com/auth/travel-partner-price-upload"
Podczas tworzenia danych logowania należy podać konto usługi. Więcej informacji: Utwórz konto usługi i wygeneruj jego dane logowania.
Tworząc aplikację, postępuj zgodnie ze sprawdzonymi metodami, uwierzytelniać aplikację za pomocą kluczy interfejsu API. Więcej informacji
Przykład
from google.oauth2 import service_account
from google.auth.transport.requests import Request
# You can use a single or multiple scopes
SCOPES =
['https://www.googleapis.com/auth/travel-partner-price-upload','https://travelpartnerprices.googleapis.com','https://www.googleapis.com/auth/travelpartner']
SERVICE_ACCOUNT_FILE = 'service_account_key_file.json'
cred = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE,
scopes=SCOPES)
cred.refresh(Request())
headers = {}
cred.apply(headers)
Interfejs Travel Partner API
Interfejs Travel Partner API pozwala partnerom hotelowym pobierać dane z Hotel Center. i zmieniać dane Hotel Center w celu zarządzania dużymi lub złożonymi kontami.
Postępuj zgodnie z instrukcjami konfiguracji OAUTH 2.0, aby uzyskać autoryzację interfejsu Travel Partner API.
Podczas tworzenia nowego projektu do interfejsu Travel Partners API musisz włączyć dostęp w nowym projekcie w konsoli Google Cloud.
Aby włączyć dostęp do interfejsu Travel Partners API, wykonaj te czynności:
Otwórz widok panelu projektu.
Kliknij Włącz interfejsy API i usługi. Wyświetli się powitalna biblioteka interfejsów API stronę.
W polu wyszukiwania zacznij wpisywać „Travel Partner API”, a konsola wyświetli listę interfejsów API pasujących do tego wyszukiwanego ciągu znaków.
W tabeli kliknij odpowiedni interfejs API. Konsola Google Cloud wyświetla opis tego interfejsu API.
Kliknij przycisk Włącz API, aby włączyć ten interfejs API w swoim projekcie.
Więcej informacji znajdziesz w artykule Włączanie i wyłączanie usług.
Interfejs Travel Partner API został włączony w nowym projekcie Twojego konta Google.
Zakres interfejsu Travel Partner API:
"https://www.googleapis.com/auth/travelpartner"
Punkt końcowy interfejsu Travel Partner API:
"https://travelpartner.googleapis.com/v3/accounts/<account_id>/<path>"
Interfejs Travel Partner Prices API
Interfejs Travel Partner Prices API umożliwia partnerom hotelowym wysyłanie cen miejsc zakwaterowania do Google. Ta opcja jest też nazywana cennikiem długości pobytu (LoS).
Postępuj zgodnie z instrukcjami konfiguracji OAUTH 2.0, aby uzyskać autoryzację za pomocą interfejsu Travel Partner Prices API.
Podczas tworzenia nowego projektu pod kątem interfejsu Travel Partners Prices API musisz wykonać te czynności: włącz dostęp do nowego projektu konsoli Google Cloud, który jest podobny do instrukcji podanych w interfejsie Travel Partner API.
Zapoznaj się z instrukcjami podanymi w interfejsie Travel Partner API i zastąp wszystkie wystąpienia „Travel Partner API” za pomocą interfejsu „Travel Partner Prices API” aby włączyć do swojego projektu.
Zakres interfejsu Travel Partner Prices API:
"https://travelpartnerprices.googleapis.com"
Ścieżka przesyłania interfejsu Travel Partner Prices API:
"/travel/lodging/uploads/accounts/<account_id>/property_data"
Interfejs API plików danych o cenach
Interfejs Price Feeds API umożliwia partnerom hotelowym dostarczanie dostosowanych danych o cenach w każdym hotelu. Partnerzy oferujący zakwaterowanie mogą używać OAuth 2.0 do uwierzytelniania i autoryzowania się podczas przesyłania cen do Google. Stosuj OAUTH 2.0 instrukcje konfiguracji dotyczące uzyskiwania autoryzacji dla interfejsu Price Feeds API.
Kwestie, o których należy pamiętać
Zwróć uwagę na istotne różnice w instrukcjach autoryzacji dotyczących plików danych z cenami API.
Partnerzy powinni utworzyć nowy projekt protokołu OAuth2.0 dla plików danych z cenami. w konsoli Google Cloud przy użyciu instrukcji opisanych w sekcji Konfiguracja OAuth 2.0.
Włączenie interfejsu Price Feeds API w konsoli Google Cloud NIE jest wymagane. można zignorować. Wystarczy jedno konto usługi i jeden klucz usługi, aby przyznać projektowi Plików danych o cenach dostęp do danych z Hotel Center. Wykonaj pozostałe czynności wymienione w konfiguracji OAuth2.0, aby dokończ konfigurowanie interfejsu API.
Uzyskaj token dostępu OAuth2.0 dla plików danych z cenami
Następny krok to przesłanie tokena dostępu OAuth2.0 wraz z przesyłaniem informacji o cenie noclegu
zakresu za pomocą pliku klucza konta usługi. Aby autoryzować żądania do projektu Pliki danych o cenach, wykonaj instrukcje podane w sekcji Przygotowanie do wykonania delegowanego wywołania interfejsu API, a następnie wyodrębnij token dostępu z uzyskanych danych logowania i ustaw go w nagłówku HTTP "Authorization"
.
Zakres przesyłania cen zakwaterowania:
"https://www.googleapis.com/auth/travel-partner-price-upload"
Prześlij ceny
Po uzyskaniu tokena dostępu partnerzy mogą przesłać plik danych z cenami podobny do używając statycznego adresu IP do uwierzytelniania i autoryzacji z następującymi modyfikacja:
- Ustaw token dostępu w nagłówku HTTP
"Authorization"
curl -X POST -H "Authorization: Bearer <access token>"
www.google.com/travel/lodging/uploads/accounts/<account_id>/ota/hotel_rate_amount_notif --data-binary @<price_feed_file_location>
Testowanie konfiguracji protokołu OAuth2.0 pod kątem interfejsu Price Feeds API
Możesz przetestować konfigurację OAuth2.0, przesyłając pusty plik lub z rzeczywistymi cenami do dowolnej ścieżki przesyłania. Aby sprawdzić odpowiedź HTTP, użyj tabeli stanu.
Stan odpowiedzi HTTP | Wiadomość |
---|---|
200 | Successful (OK) |
401 | Service account creation or access token fetch was not successful |
403 | Service account access wasn't granted to the Hotel Center account or both the service account key and access token has expired |
Rozwiązywanie problemów
Masz problemy? Szybkie sprawdzenie tych elementów może rozwiązać i rozpoznają problem.
- Czy Twój projekt został utworzony w konsoli Google Cloud?
- Czy usługa została włączona w projekcie?
- Czy pobrałeś plik
.JSON
– klucz prywatny po kliknięciu? Utworzyć identyfikator klienta i wybrać Konto usługi? - Czy masz adres e-mail powiązany z identyfikatorem klienta konta usługi i formularzem:
nnnnnnn@app_name.google.com.iam.gserviceaccount.com
? - Czy konto Hotel Ads Center zostało udostępnione kontu usługi przez kliknięcie przycisk Udostępnij to konto?
- Czy adres e-mail konta usługi i identyfikator partnera zostały wysłane na adres technicznym menedżerem konta (TAM)?
- Czy wywołania interfejsu API przekazują niedawno uzyskany token w
Authorization
nagłówek? - Czy Twój token ma więcej niż godzinę?
W poniższej tabeli znajdziesz listę kilku częstych błędów i możliwych sposobów ich rozwiązania:
Błąd | Opis |
---|---|
Invalid credentials | Może to oznaczać kilka rzeczy. Jeśli pojawi się ten błąd,
Sprawdź, czy:
|
Not found | Punkt końcowy najprawdopodobniej jest uszkodzony. Sprawdź, czy przesyłasz żądanie GET i czy adres URL żądania jest prawidłowy (czy jest zgodny ze składnią interfejsu API, do którego próbujesz uzyskać dostęp). |
Invalid string value | Co najmniej jedna część punktu końcowego zawiera nieprawidłową składnię. Przykład: ale część ścieżki została zapisana z błędem. Sprawdź, czy użyto prawidłowego znaków podkreślenia, wielkich liter i słów na całej ścieżce. |
Unsupported output format | Ten błąd występuje najczęściej podczas korzystania z interfejsu Reports API. Musisz
podaj "alt=csv" w adresie URL Twojej GET
użytkownika. Interfejs Reports API nie obsługuje formatu JSON. |
AccessTokenRefreshError/Invalid grant | Podczas uruchamiania aplikacji błąd ten może być spowodowany przez
:
|
HotelAdsAPIConnection object has no attribute credentials | Podczas uruchamiania aplikacji ścieżka do pliku .JSON to
niepoprawnie. |
Invalid scope | Podczas uruchamiania aplikacji zakres interfejsu API musi być jeden z tych:
|
Forbidden | Identyfikator konta, którego używasz, nie jest autoryzowany. aby uzyskać dostęp. Jeśli jesteś właścicielem subkonta, możesz nie mieć dostępu do identyfikator konta nadrzędnego lub konta głównego. |