Bu doküman, hesabınızda OAuth2.0'ı kurmaya yönelik adım adım talimatları, Travel Partner API ve Price gibi otel API'lerine erişirken kullanılan uygulama Feeds API'si. Google API'lerine Erişmek için OAuth 2.0'ı Kullanma başlıklı makaleye bakın. (uygulamanızı yetkilendirmek için)
OAuth 2.0 kurulumu
OAuth 2.0, bir hizmet hesabı kullanarak kendinizi tanımlamanızı gerektirir. Google Hesabınızla ilişkilendirilmiş. Hizmet hesabı, gizli bilgilerinizi anahtarı kullanabilirsiniz. Ardından bu jetonu Fiyatlandırma, otel ve otel gibi salt okunur veriler için otel API'lerine yapılan çağrılar. Otel fiyatı feed'inizle ilgili teşhis raporu verileri.
Erişim jetonları bir saat (3.600 saniye) süreyle kullanılabilir.
Daha önce ClientLogin'i uyguladıysanız OAuth 2.0 yaklaşımı da buna benzerdir. şu farklılıklarla:
- Uygulamanız API'ye erişmek için bir Google hizmet hesabı kullanır.
- API'leri çağırdığınızda
Authorization
HTTP üst bilgisinde bir OAuth 2.0 erişim jetonu geçirirsiniz.
Hesabınızı herhangi bir Hotels API'yle OAuth 2.0'ı kullanacak şekilde ayarlamak için aşağıdaki adımları uygulayın: için şu adımları izleyin:
Bu adımların her biri sonraki bölümlerde açıklanmıştır.
1. Adım: Yeni bir Google Cloud Console projesi oluşturun
Google Cloud Console, trafik verilerini yönetmek ve görüntülemek için kullanılır. için kimlik doğrulama ve fatura bilgilerini pek de iyi olmadığını unutmayın.
Google Cloud konsolunda proje, ayarların ve kimlik bilgilerini ve meta verileri de içerir. Google Developer API'lerini ve Google Cloud kaynaklarını kullanır.
Google Cloud Console ayrıca API kimlik bilgilerini oluşturmak, API'ler ve projenizle ilişkili ekip ve fatura bilgilerini yönetme.
Yeni bir Google Cloud Console projesi oluşturmak için:
Gmail veya Google Hesabınızda oturum açın.
Google Cloud Console'u açın. Bu ilk projenizse ana görünümde bir PROJE OLUŞTUR düğme:
PROJE OLUŞTUR düğmesini tıklayın. Google Cloud Console, Yeni Proje iletişim kutusu:
Proje adı giriş alanına yeni projeniz için bir kolay ad girin. Alanın altında, Google Cloud Console bir proje oluşturur sizin için geçerli olan kimliktir. Kimliğin tüm projelerde benzersiz olmasını sağlar. Örneğin, "Yeni Projem" ifadesini girerseniz Google Cloud konsolu şuna benzer bir kimlik atar:
my-new-project-266022
Yeni projenizi oluşturmak için Oluştur düğmesini tıklayın.
Gezinme menüsünü kullanarak API'ler ve Hizmetler > Kontrol Paneli.
Aşağıdaki resimde, Google Cloud konsolunu kullanın. Bu, reklamınızla ilişkili Kontrol Paneli görünümünü proje:
Daha fazla bilgi için Proje oluşturma ve yönetme başlıklı makaleyi inceleyin.
2. Adım: Bir hizmet hesabı ve hesabın kimlik bilgilerini oluşturun
Hizmet hesapları, iki sunucu arasındaki etkileşimler gibi sunucudan sunucuya web uygulaması ve otel verileriniz.
Hizmet hesabı oluşturmak ve yapılandırmak için:
Google API Konsolu ana görünümünde Kimlik bilgileri'ni tıklayın. kullanabilirsiniz. Google Cloud Console Kimlik Bilgilerini gösterir. görünüm.
Kimlik bilgileri görünümü, kimlik bilgilerinizin istemci kimliklerini ve kimlik bilgilerini belirler. Uygulamanız istekte bulunurken istemci kimliğini kullanıyor. OAuth 2.0 erişim jetonu. Yeni projelerin herhangi bir müşterisi veya kimlik bilgisi yoktur (henüz).
API'ler ve hizmetlerde kimlik bilgileri bağlantısını tıklayın.
Create credentials (Kimlik bilgileri oluştur) düğmesini tıklayın ve Service account key (Hizmet hesabı anahtarı) seçeneğini belirleyin bulunur. Hizmet hesabı anahtarı oluştur görünümü gösterilir.
Hizmet hesabı filtresinde Yeni hizmet hesabı'nı seçin.
Hizmet hesabı adı ve hizmet hesabı kimliği girin.
Ad istediğiniz herhangi bir ad olabilir ancak hesap kimliği benzersiz olmalıdır etkili bir yoludur. Google Cloud Console, girdiğiniz adı temel alarak sizin için benzersiz bir hesap kimliği oluşturur.
Anahtar türü için JSON'u seçin. JSON gereklidir.
Oluştur düğmesini tıklayın. Google Cloud Console, Google Cloud Platform'un ortak anahtar çiftini ekleyin. Özel anahtar varsayılan değere kaydedilir tarayıcınızın indirilen içerikleri depoladığı konumu kaydetme
.JSON
biçim dosyasını indirmelisiniz.Komut dosyalarınızda veya API'nize erişen diğer uygulamalarda özel anahtarı kullanırsınız.
Google Cloud Console'da "Hizmet hesabı oluşturuldu" ifadesi gösterilir mesaj gönder: anahtar oluşturmayı bitirir.
Tamam, anladım düğmesini tıklayın. Google Cloud Console Kimlik bilgileri görünümü. Hizmet hesabınızla ilgili ayrıntıları onaylamak ve projenizle ilişkilendirilen hizmet hesabını görmek için bu görünümde Hizmet hesaplarını yönet'i tıklayın.
Hizmet hesabı, kendisiyle ilişkilendirilmiş aşağıdaki kimlik bilgilerine sahiptir:
- İstemci kimliği: Uygulamanızın, OAuth 2.0 erişim jetonu isteme.
- E-posta adresi: Hizmet hesabı için oluşturulan bir e-posta adresi form "account_name@account_name.google.com.iam.gserviceaccount.com".
- Sertifika dijital parmak izleri: Oluşturduğunuz özel anahtarın kimliği indirildi.
Daha fazla bilgi için Sunucudan Sunucuya Uygulamalar için OAuth 2.0'ı Kullanma başlıklı makaleye göz atın.
3. Adım: Hizmet hesabının Hotel Center verilerinize erişmesine izin verin
Son adım, yeni hizmet hesabının Hotel Center'a gidin. Hizmet hesabı, oluşturulan e-posta adresine göre son adımdır. Bu hesaba erişim sağlamak için: Hotel Center paylaşım ayarlarına gidin.
Hesaba kullanıcı eklemek için uygun erişim iznine sahip değilseniz Google Oteller Ekibi'nin bize ulaşın formunu kullanarak işletme sahipliğini ayarlama isteğinde bulunun ve oturum açın. Bir veya daha fazla e-posta adresinin sahibine gönderilmesini isteyebilirsiniz. Hotel Center erişimi hakkında daha fazla bilgi için Hotel Center ile Google Ads'i bağlama başlıklı makaleyi inceleyin.
Bir hizmet hesabının Hotel Center verilerinize erişmesine izin vermek için:
Yeni bir tarayıcı penceresinde Hotel Center'ı açın.
Hotel Center by Google banner'ında kullanıcı ekle simgesini tıklayarak açın. iletişim kutusu gösterilir.
Daha fazla kişi ekle alanına hizmetin e-posta adresini girin. Hotel Center hesabınıza eklemek istediğiniz hesaptır.
Kullanıcıları bilgilendir seçeneğini işaretli bırakın.
Filtreden Yönet'i seçin.
Davet Et düğmesini tıklayın.
Hotel Center'a kullanıcı ekledikten sonra hizmet hesabınız etkinleştirilecektir. .
Google, hizmetiniz için API erişiminin etkinleştirildiğini size bildirdikten sonra hesabınıza erişimi olanlar, API'ye OAuth 2.0 ile erişmeye başlayabilirsiniz.
OAuth 2.0 nasıl kullanılır?
API'ya erişmek için uygulamanızın kendisini Google'a
hizmet hesabının oluşturulan e-posta adresi ve özel anahtarı. Google'ın
kimlik doğrulama mekanizması, bu anahtarı
uygulamanızın API çağrılarında Authorization
üstbilgisini iletirsiniz.
Yetki verilmiş bir API çağrısı yapmaya hazırlanma başlıklı makaleyi inceleyin.
Kapsamlar
Hotels API için SCOPES
aşağıdakileri içerir:
Travel Partner API'si: "https://www.googleapis.com/auth/travelpartner"
Seyahat İş Ortağı Fiyatları API'si: "https://travelpartnerprices.googleapis.com"
Fiyat Feed'leri API'si: "https://www.googleapis.com/auth/travel-partner-price-upload"
Kimlik bilgilerini oluştururken hizmet hesabını belirtmeniz gerekir. Referans Bir hizmet hesabı ve hesabın kimlik bilgilerini oluşturun.
Uygulamanızı geliştirirken, uygulamanızı daha verimli hale getirmek için uygulamanızın kimliğini API anahtarları kullanarak doğrulayın. Daha fazla bilgi edinin.
Örnek
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)
Travel Partner API'si
Travel Partner API, konaklama iş ortaklarının Hotel Center'dan alınan otel verilerini almasını sağlar. bilgileri ve Hotel Center verilerini değiştirerek büyük veya karmaşık hesapları yönetmenizi sağlar.
Travel Partner API'niz için yetkilendirme almak üzere OAUTH 2.0 kurulum talimatlarını uygulayın.
Travel Partners API için yeni bir proje oluşturduğunuzda erişimi etkinleştirmeniz gerekir yeni Google Cloud Console projenize bağlayın.
Travel Partners API'ye erişimi etkinleştirmek için adımları uygulayın:
Projenizin Kontrol paneli görünümüne gidin.
API'leri ve Hizmetleri Etkinleştir'i tıklayın. API Kitaplığı karşılama mesajını görüntüler sayfasını ziyaret edin.
Arama alanına "Travel Partner API" yazmaya başlayın. Ardından konsolda yazdıklarınızla eşleşen API'lerin listesini gösterir.
Tabloda eşleşen API'yi tıklayın. Google Cloud Console'da açıklamaya bakın.
Projenizde bu API'yi etkinleştirmek için API'yi Etkinleştir düğmesini tıklayın.
Daha fazla bilgi için Hizmetleri Etkinleştirme ve Devre Dışı Bırakma başlıklı makaleyi inceleyin.
Google Hesabınızın yeni projesi için Travel Partner API etkinleştirildi.
Travel Partner API'nin kapsamı:
"https://www.googleapis.com/auth/travelpartner"
Travel Partner API'nin uç noktası şu şekildedir:
"https://travelpartner.googleapis.com/v3/accounts/<account_id>/<path>"
Seyahat İş Ortağı Fiyatları API'si
Travel Partner Prices API, konaklama iş ortaklarının tesis fiyatlarını Google'a dokunun. Konaklama Süresi (LoS) Fiyatlandırması olarak da adlandırılır.
OAUTH 2.0 kurulumu talimatlarını uygulayarak şunun için yetkilendirme alın: Travel Partner Price API'nize göz atın.
Travel Partners Prices API için yeni bir proje oluşturduğunuzda: şuna benzer yeni Google Cloud Console projenize erişimi etkinleştirin: Travel Partner API'sinde sağlanan talimatlar.
Travel Partner API'de sağlanan adımları inceleyin ve tüm "Travel Partner API" örnekleri "Travel Partner Prices API" ile ve akılda kalıcı bir yolunu sunar.
Travel Partner Prices API'sinin kapsamı:
"https://travelpartnerprices.googleapis.com"
Travel Partner Prices API'si için yükleme yolu:
"/travel/lodging/uploads/accounts/<account_id>/property_data"
Fiyat Feed'leri API'si
Price Feeds API, konaklama iş ortaklarının otel için özelleştirilmiş fiyatlandırma verileri her otele özel. Google konaklama iş ortakları, OAuth2.0'ı kullanarak kimlik doğrulaması ve Google'a fiyat yüklerken kendilerini yetkilendirebilir. OAUTH 2.0'ı uygulayın Price Feeds API için yetkilendirme almak üzere kurulum talimatlarını uygulayın.
Unutulmaması Gereken Noktalar
Fiyat feed'leri için yetkilendirme talimatlarındaki önemli farklılıkları not edin. API'ye gidin.
İş ortakları yeni bir Fiyat Feed'leri OAuth2.0 projesi oluşturmalıdır Google Cloud Console'da OAuth 2.0 kurulumunda sağlanan talimatları uygulayın.
Google Cloud Console'da Price Feeds API'nin etkinleştirilmesi gerekli DEĞİLDİR ve yoksayabilirsiniz. Yalnızca bir hizmet hesabına ve anahtar ve ardından aynı hizmet hesabı ve Otelinize Fiyat Feed'leri projesine erişim izni verme anahtarı Verileri ortalayın. OAuth2.0 kurulumunda belirtilen kalan adımları uygulayarak API'nizi yapılandırmayı tamamlayın.
Fiyat Feed'leri için OAuth2.0 erişim jetonu alın
Bir sonraki adımda, konaklama fiyatının yükleneceği bir OAuth2.0 erişim jetonu alın
kapsamına girersiniz. Şuradaki istekleri yetkilendirebilirsiniz:
Fiyat Feed'leri projesi için
Yetki verilmiş API çağrısı yapmaya hazırlanma
Ardından, alınan kimlik bilgilerinden erişim jetonunu çıkarıp
"Authorization"
HTTP üstbilgisi.
Konaklama yeri fiyatı yükleme kapsamı:
"https://www.googleapis.com/auth/travel-partner-price-upload"
Fiyatları Yükle
İş ortakları, erişim jetonunu aldıktan sonra şuna benzer fiyat feed'lerini yükleyebilir: kullanarak kimlik doğrulama ve yetkilendirme için statik IP kullanma değiştirme:
"Authorization"
HTTP başlığında erişim jetonunu ayarlayın
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>
Price Feeds API için OAuth2.0 kurulumunu test edin
Boş bir dosya yükleyerek veya gerçek fiyatları kullanarak OAuth2.0 kurulumunuzu test edebilirsiniz yükleyebilirsiniz. HTTP yanıtınızı kontrol etmek için tabloyu kullanın durumu.
HTTP yanıtı durumu | Mesaj |
---|---|
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 |
Sorun giderme
Sorun mu yaşıyorsunuz? Aşağıdaki öğeleri hızlı bir şekilde kontrol etmek bu sorunu çözebilir düşünmeye başlamışsınızdır.
- Google Cloud Console'da bir proje oluşturdunuz mu?
- Projenizde hizmeti etkinleştirdiniz mi?
.JSON
dosyası (tıkladıktan sonra gizli bir anahtar) indirdiniz mi? İstemci kimliği oluşturulsun ve Hizmet hesabı seçilsin mi?- Hizmet hesabı istemci kimliği e-posta adresini şu şekilde aldınız mı:
nnnnnnn@app_name.google.com.iam.gserviceaccount.com
silinsin mi? - Şu seçeneği tıklayarak Otel Reklamları Merkezi hesabınızı hizmet hesabıyla paylaştınız: Bu hesabı paylaş düğmesi nedir?
- Hizmet hesabının e-posta adresini ve iş ortağı kimliğinizi Teknik Hesap Yöneticinize (THY) gönderdiniz mi?
- API çağrılarınız
Authorization
üstbilgisi mi? - Jetonunuz 1 saatten eski mi?
Aşağıdaki tabloda, sık karşılaşılan bazı hatalar ve olası çözümleri listelenmiştir:
Hata | Açıklama |
---|---|
Invalid credentials | Bu, farklı anlamlara gelebilir. Bu hatayla karşılaşırsanız
şunlardan emin olun:
|
Not found | Uç noktanız büyük olasılıkla bozuk. İşlemi gönderdiğinizden emin olun
GET isteği ve istek URL'sinin geçerli olduğundan (
söz konusu API söz dizimini kullandığınızdan emin olun. |
Invalid string value | Uç noktanın bir veya daha fazla bölümü geçersiz söz dizimi içeriyor. Örneğin, yolun bir kısmını yanlış yazmış olabilirsiniz. Doğru depolama alanını kullandığınızdan emin olun alt çizgi, büyük harf ve kelimeler kullanmaktan kaçının. |
Unsupported output format | Bu hata en çok Reports API kullanılırken ortaya çıkar. Şunu yapmalısınız:
GET öğenizin URL'sinde "alt=csv" değerini belirtin
isteği gönderin. Reports API, JSON'u desteklemez. |
AccessTokenRefreshError/Invalid grant | Uygulamanızı çalıştırırken bu hatanın nedeni
takip etmek için:
|
HotelAdsAPIConnection object has no attribute credentials | Uygulamayı çalıştırırken .JSON dosyanızın yolu
yanlış. |
Invalid scope | Uygulamayı çalıştırırken API kapsamınız aşağıdakilerden biri olmalıdır:
|
Forbidden | Kullandığınız hesap kimliği, yetkinizin olmadığı bir hesap tıklayın. Bir alt hesap sahibiyseniz erişimi kaybettiğiniz durumlara üst veya kök hesap kimliği. |