La presente documentazione fornisce istruzioni dettagliate per configurare OAuth2.0 nel tuo durante l'accesso alle API degli hotel, come API Travel Partner e Price API Feed. Per autorizzare la tua applicazione, consulta l'articolo Utilizzare OAuth 2.0 per accedere alle API di Google.
Impostazione OAuth 2.0
OAuth 2.0 richiede di identificarti utilizzando un account di servizio associati al tuo Account Google. L'account di servizio invia i dati in cambio di un token di accesso OAuth 2.0. Potrai quindi utilizzare questo token nelle chiamate alle API hotel per i dati di sola lettura, come quelli dei prezzi, degli hotel e dei report diagnostici relativi al tuo feed prezzo dell'hotel.
I token di accesso sono validi per un'ora (3600 secondi).
Se avevi implementato ClientLogin, noterai che l'approccio per OAuth 2.0 è analogo, ma con le seguenti differenze:
- L'applicazione utilizza un account di servizio Google per accedere all'API.
- Passi un token di accesso OAuth 2.0 nell'intestazione HTTP
Authorization
quando che chiama le API.
Per configurare il tuo account per l'utilizzo di OAuth 2.0 con qualsiasi API Hotels, esegui queste operazioni passaggi:
Ciascuno di questi passaggi è descritto nelle sezioni seguenti.
Passaggio 1: crea un nuovo progetto nella console Google Cloud
La console Google Cloud viene utilizzata per gestire e visualizzare i dati sul traffico, informazioni di autenticazione e fatturazione per le API di Google che i tuoi progetti per gli utilizzi odierni.
Nella console Google Cloud, un progetto è una raccolta di impostazioni, le credenziali e i metadati dell'applicazione su cui stai lavorando utilizza le API Google Developers e le risorse Google Cloud.
La console Google Cloud viene utilizzata anche per generare credenziali API, attivare API e gestione dei dati del team e di fatturazione associati al progetto.
Per creare un nuovo progetto nella console Google Cloud:
Accedi al tuo account Gmail o Google.
Apri la console Google Cloud. Se questo è il tuo primo progetto, la visualizzazione principale mostra la dicitura CREA PROGETTO. Pulsante:
Fai clic sul pulsante CREA PROGETTO. Nella console Google Cloud viene visualizzata la finestra di dialogo Nuovo progetto:
Inserisci un nome intuitivo per il nuovo progetto in Nome progetto campo di immissione. Sotto il campo, la console Google Cloud genera un progetto per te, assicurandoti che l'ID sia univoco in tutti i progetti. Ad esempio: Se inserisci "My New Project", la console Google Cloud assegna un ID simile a
my-new-project-266022
.Fai clic sul pulsante Crea per creare il nuovo progetto.
Utilizza il menu di navigazione per selezionare API e Servizi > Fitbit.com.
La seguente immagine mostra il menu di navigazione in alto a sinistra di la console Google Cloud. Viene visualizzata la visualizzazione Dashboard per i tuoi progetto:
Per saperne di più, consulta la pagina Creare e gestire progetti.
Passaggio 2: crea un account di servizio e genera le relative credenziali
Gli account di servizio vengono utilizzati dalle interazioni server-to-server, come quelle tra un'applicazione web e i dati dei tuoi hotel.
Per creare e configurare un account di servizio:
Nella visualizzazione principale della console API di Google, fai clic su Credenziali nella nel menu di navigazione a sinistra. Nella console Google Cloud viene visualizzata la scheda Credenziali vista.
Nella visualizzazione Credenziali vengono mostrati gli ID client e le credenziali del tuo progetto. L'applicazione utilizza l'ID client durante la richiesta di un token di accesso OAuth 2.0. I nuovi progetti non hanno client o credenziali .
Fai clic sul link Credenziali in API e servizi.
Fai clic sul pulsante Crea credenziali e seleziona Chiave account di servizio dal filtro. Viene visualizzata la vista Crea chiave account di servizio.
Dal filtro Account di servizio, seleziona Nuovo account di servizio.
Inserisci un nome e un ID account di servizio per l'account di servizio.
Il nome può essere qualsiasi cosa tu voglia, ma l'ID account deve essere univoco in tutti i progetti. La console Google Cloud genera un ID account univoco in base al nome che hai inserito.
Seleziona JSON come tipo di chiave. JSON è obbligatorio.
Fai clic su pulsante Crea. La console Google Cloud genera una coppia di chiavi privata o pubblica per il tuo progetto. La chiave privata viene salvata nel valore predefinito posizione in cui il browser archivia i download. Devi scaricare il file in formato
.JSON
.Utilizzi la chiave privata nei tuoi script o in altre applicazioni che accedono l'API.
Al termine della generazione delle chiavi, la console Google Cloud mostra il messaggio "Account di servizio creato".
Fai clic sul pulsante OK. La console Google Cloud ti riporta Visualizzazione Credenziali. Per confermare i dettagli del tuo account di servizio Per vedere l'account di servizio associato al progetto, fai clic su Gestisci o account di servizio in questa vista.
All'account di servizio sono ora associate le seguenti credenziali:
- ID client:un identificatore univoco utilizzato dall'applicazione quando richiedendo un token di accesso OAuth 2.0.
- Indirizzo email: un indirizzo email generato per l'account di servizio, in il modulo "account_name@account_name.google.com.iam.gserviceaccount.com".
- Impronte digitali del certificato:l'ID della chiave privata che scaricato.
Per ulteriori informazioni, consulta l'articolo sull'utilizzo di OAuth 2.0 per applicazioni server-server.
Passaggio 3: consenti all'account di servizio di accedere ai tuoi dati di Hotel Center
Il passaggio finale consiste nel fornire al nuovo account di servizio l'accesso ai tuoi Hotel Center L'account di servizio è identificato dall'indirizzo email generato che creato nel passaggio precedente. Fornisci l'accesso a questo account utilizzando Le impostazioni di condivisione di Hotel Center.
Se non disponi dell'accesso appropriato per aggiungere utenti all'account, contatta Il team di Google Hotels utilizzando il modulo Contattaci per richiedere la configurazione di una proprietà per al tuo account. Puoi richiedere l'invio di una o più email a un proprietario. Per saperne di più sull'accesso a Hotel Center, consulta la pagina Collegare Hotel Center e Google Ads.
Per concedere a un account di servizio l'accesso ai dati di Hotel Center:
Apri Hotel Center in una nuova finestra del browser.
Sul banner di Hotel Center by Google, fai clic sull'icona Aggiungi utente per aprire la finestra di dialogo di condivisione.
Nel campo Aggiungi altre persone, inserisci l'indirizzo email del servizio che vuoi aggiungere a Hotel Center.
Lascia selezionata l'opzione Invia notifiche.
Seleziona Gestisci dal filtro.
Fai clic sul pulsante Invita.
Dopo aver aggiunto gli utenti a Hotel Center, il tuo account di servizio dovrebbe essere attivato per accedere all'API entro circa 24 ore.
Dopo che Google ti informerà che l'accesso all'API è abilitato per il tuo servizio. puoi iniziare ad accedere all'API con OAuth 2.0.
Come utilizzare OAuth 2.0
Per accedere all'API, la tua applicazione deve identificarsi con Google tramite
l'indirizzo email e la chiave privata generati dall'account di servizio. di Google
meccanismo di autenticazione scambia questa chiave con un token di accesso OAuth 2.0
che passi nell'intestazione Authorization
nelle chiamate API della tua app.
Fai riferimento a Prepararsi a effettuare una chiamata API delegata.
Ambiti
Di seguito sono riportate le SCOPES
per l'API Hotels:
API Travel Partner: "https://www.googleapis.com/auth/travelpartner"
API Travel Partner Prices: "https://travelpartnerprices.googleapis.com"
API dei feed del prezzo: "https://www.googleapis.com/auth/travel-partner-price-upload"
Devi specificare l'account di servizio quando crei le credenziali. Consulta Crea un account di servizio e genera le relative credenziali.
Quando sviluppi la tua applicazione, assicurati di seguire le best practice per di autenticare la tua applicazione tramite chiavi API. Ulteriori informazioni.
Esempio
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)
API Travel Partner
L'API Travel Partner consente ai partner alberghieri di recuperare le informazioni di Hotel Center e di modificare i dati di Hotel Center per la gestione di account di grandi dimensioni o complessi.
Segui le istruzioni di configurazione di OAUTH 2.0 per ottenere l'autorizzazione per l'API Travel Partner.
Quando crei un nuovo progetto per l'API Travel Partners, devi attivare l'accesso al nuovo progetto della console Google Cloud.
Segui i passaggi per attivare l'accesso all'API Travel Partners:
Vai alla visualizzazione Dashboard del progetto.
Fai clic su Abilita API e servizi. Viene visualizzato il messaggio di benvenuto della Libreria API .
Nel campo di ricerca, inizia a digitare "Travel Partner API" e poi la console mostra un elenco di API corrispondenti al testo digitato.
Fai clic sull'API che corrisponde nella tabella. Nella console Google Cloud viene visualizzata descrizione dell'API.
Fai clic sul pulsante Abilita API per abilitare l'API per il progetto.
Per ulteriori informazioni, consulta l'argomento Attivazione e disattivazione dei servizi.
L'API Travel Partner è ora abilitata per il nuovo progetto del tuo Account Google.
L'ambito dell'API Travel Partner è:
"https://www.googleapis.com/auth/travelpartner"
L'endpoint per l'API Travel Partner è:
"https://travelpartner.googleapis.com/v3/accounts/<account_id>/<path>"
API Travel Partner Prices
L'API Travel Partner Prices consente ai partner alberghieri di inviare i prezzi degli alloggi a in tutti i canali Google. È indicato anche come prezzi per la durata del soggiorno.
Segui le istruzioni di configurazione di OAUTH 2.0 per ottenere l'autorizzazione per l'API Travel Partner Prices.
Quando crei un nuovo progetto per l'API Travel Partners Prices, devi abilitare l'accesso al tuo nuovo progetto nella console Google Cloud, che è simile istruzioni fornite nell'API Travel Partner.
Consulta i passaggi forniti nell'API Travel Partner e sostituiscili tutte le istanze di "API Travel Partner" con "API Travel Partner Prices" per attivare del progetto.
L'ambito dell'API Travel Partner Prices è:
"https://travelpartnerprices.googleapis.com"
Il percorso di caricamento per l'API Travel Partner Prices è:
"/travel/lodging/uploads/accounts/<account_id>/property_data"
API dei feed dei prezzi
L'API dei feed dei prezzi consente ai partner che offrono strutture ricettive di fornire dati personalizzati sui prezzi in tutti gli hotel. I partner ricettivi di Google possono utilizzare OAuth2.0 per l'autenticazione e si autorizzano al caricamento dei prezzi su Google. Segui le istruzioni di OAUTH 2.0 istruzioni per la configurazione per ottenere l'autorizzazione per l'API dei feed del prezzo.
Punti da ricordare
Tieni presente le importanti differenze nelle istruzioni sull'autorizzazione per i feed del prezzo tramite Google Cloud CLI o tramite l'API Compute Engine.
I partner devono creare un nuovo progetto OAuth2.0 dei feed del prezzo. nella console Google Cloud utilizzando le stesse istruzioni fornite nella configurazione di OAuth 2.0.
L'abilitazione dell'API dei feed dei prezzi nella console Google Cloud NON è obbligatoria e può essere ignorato. Ti serve un solo account di servizio e chiave e quindi useremo lo stesso account di servizio e chiave per concedere al progetto dei feed del prezzo l'accesso al tuo hotel data center. Segui i passaggi rimanenti menzionati nella configurazione di OAuth2.0 per hai completato la configurazione dell'API.
Recuperare il token di accesso OAuth2.0 per i feed del prezzo
Il passaggio successivo consiste nel ottenere un token di accesso OAuth2.0 con il caricamento del prezzo dell'alloggio
utilizzando il file della chiave dell'account di servizio. Puoi autorizzare le richieste ai tuoi
del progetto Feed del prezzo seguendo le istruzioni fornite in
Prepararsi a effettuare una chiamata API delegata
estrae il token di accesso dalle credenziali acquisite e lo imposta
l'intestazione HTTP "Authorization"
.
L'ambito per il caricamento del prezzo dell'alloggio è:
"https://www.googleapis.com/auth/travel-partner-price-upload"
Carica prezzi
Dopo aver ottenuto il token di accesso, i partner possono caricare il proprio feed del prezzo in modo simile a utilizzando IP statico per l'autenticazione e l'autorizzazione con quanto segue modifica:
- Imposta il token di accesso nell'intestazione 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>
Testare la configurazione di OAuth2.0 per l'API dei feed dei prezzi
Puoi testare la configurazione di OAuth2.0 caricando un file vuoto o con prezzi reali in qualsiasi percorso di caricamento. Utilizza la tabella per controllare la risposta HTTP .
Stato risposta HTTP | Messaggio |
---|---|
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 |
Risoluzione dei problemi
Stai riscontrando problemi? Potresti risolvere un rapido controllo dei seguenti elementi risolvere il problema.
- Hai creato un progetto nella console Google Cloud?
- Hai abilitato il servizio nel tuo progetto?
- Hai scaricato un file
.JSON
, una chiave privata dopo aver fatto clic Creare l'ID client e selezionare Account di servizio? - Hai ricevuto l'indirizzo email di un ID client dell'account di servizio di un modulo:
nnnnnnn@app_name.google.com.iam.gserviceaccount.com
? - Hai condiviso il tuo account Hotel Ads Center con l'account di servizio facendo clic su il pulsante Condividi questo account?
- Hai inviato l'indirizzo email dell'account di servizio e il tuo ID partner a al tuo Technical Account Manager (TAM)?
- Le chiamate API trasmettono un token ottenuto di recente nel
Authorization
intestazione? - Il token risale a più di un'ora?
Nella tabella seguente sono elencati alcuni errori comuni e le possibili risoluzioni:
Errore | Descrizione |
---|---|
Invalid credentials | Ciò può avere vari motivi. Se riscontri questo errore,
verifica quanto segue:
|
Not found | È molto probabile che il formato del tuo endpoint non sia corretto. Verifica di inviare
una richiesta GET e che l'URL della richiesta sia valido (conforme alla sintassi dell'API
a cui stai tentando di accedere). |
Invalid string value | Una o più parti dell'endpoint contengono una sintassi non valida. Ad esempio: potresti aver sbagliato a scrivere una parte del percorso. Verifica di aver utilizzato trattini bassi, lettere maiuscole e parole nell'intero percorso. |
Unsupported output format | Questo errore si verifica solitamente quando si utilizza l'API Reports. Devi
specifica "alt=csv" nell'URL di GET
richiesta. L'API Reports non supporta JSON. |
AccessTokenRefreshError/Invalid grant | Durante l'esecuzione dell'app, questo errore potrebbe essere causato dal seguente motivo:
seguenti:
|
HotelAdsAPIConnection object has no attribute credentials | Quando esegui l'app, il percorso del file .JSON è
risposta errata. |
Invalid scope | Quando esegui l'app, l'ambito API deve essere uno dei seguenti:
|
Forbidden | L'ID account che utilizzi non è autorizzato per accedere. Se sei il proprietario di un subaccount, potresti non essere in grado di accedere l'ID account principale o principale. |