API Yetkilendirmesi

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:

  1. Google Cloud konsolunda yeni proje oluşturma

  2. Bir hizmet hesabı ve kimlik bilgileri oluşturma

  3. Hizmet hesabınızın otel verilerinize erişmesine izin verme

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:

  1. Gmail veya Google Hesabınızda oturum açın.

  2. Google Cloud Console'u açın. Bu ilk projenizse ana görünümde bir PROJE OLUŞTUR düğme:

    fig1

  3. PROJE OLUŞTUR düğmesini tıklayın. Google Cloud Console, Yeni Proje iletişim kutusu:

    fig2

    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

  4. Yeni projenizi oluşturmak için Oluştur düğmesini tıklayın.

  5. Gezinme menüsünü kullanarak API'ler ve Hizmetler > Kontrol Paneli.

    fig3

    Aşağıdaki resimde, Google Cloud konsolunu kullanın. Bu, reklamınızla ilişkili Kontrol Paneli görünümünü proje:

    fig4

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:

  1. 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).

  2. API'ler ve hizmetlerde kimlik bilgileri bağlantısını tıklayın.

  3. 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.

  4. Hizmet hesabı filtresinde Yeni hizmet hesabı'nı seçin.

  5. 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.

  6. Anahtar türü için JSON'u seçin. JSON gereklidir.

  7. 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.

  8. 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.
ziyaret edin.

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:

  1. Yeni bir tarayıcı penceresinde Hotel Center'ı açın. fig7

  2. Hotel Center by Google banner'ında kullanıcı ekle simgesini tıklayarak açın. iletişim kutusu gösterilir.

    fig8

  3. Daha fazla kişi ekle alanına hizmetin e-posta adresini girin. Hotel Center hesabınıza eklemek istediğiniz hesaptır.

  4. Kullanıcıları bilgilendir seçeneğini işaretli bırakın.

  5. Filtreden Yönet'i seçin.

  6. Davet Et düğmesini tıklayın.

  7. 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:

  1. Projenizin Kontrol paneli görünümüne gidin.

  2. API'leri ve Hizmetleri Etkinleştir'i tıklayın. API Kitaplığı karşılama mesajını görüntüler sayfasını ziyaret edin.

  3. 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.

  4. Tabloda eşleşen API'yi tıklayın. Google Cloud Console'da açıklamaya bakın.

  5. 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.

  1. İş 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.

  2. 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.

  1. Google Cloud Console'da bir proje oluşturdunuz mu?
  2. Projenizde hizmeti etkinleştirdiniz mi?
  3. .JSON dosyası (tıkladıktan sonra gizli bir anahtar) indirdiniz mi? İstemci kimliği oluşturulsun ve Hizmet hesabı seçilsin mi?
  4. Hizmet hesabı istemci kimliği e-posta adresini şu şekilde aldınız mı: nnnnnnn@app_name.google.com.iam.gserviceaccount.com silinsin mi?
  5. Ş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?
  6. Hizmet hesabının e-posta adresini ve iş ortağı kimliğinizi Teknik Hesap Yöneticinize (THY) gönderdiniz mi?
  7. API çağrılarınız Authorization üstbilgisi mi?
  8. 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:
  • Geçerli bir Authorization üst bilgisi belirttiniz hamiline ait jeton.
  • Hamiline ait jeton bir saatten kısa bir süre önce oluşturuldu. Jeton yalnızca bir saat süreyle kullanılabilir.
  • Doğru iş ortağı adını belirttiniz (partner sorgu dizesi parametresiyle). Değer, benzersiz iş ortağınızdır Kimliği (Otel Reklamları Merkezi'nde görünen iş ortağı adınız değil) İş ortağı kimliğinizi bilmiyorsanız Teknik Hesap Yöneticinizle (THY) iletişime geçin.
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:
  • Hizmet hesabı e-posta adresiniz yanlış. E-postayı kontrol edin hesap Google Cloud Console 'u güncelleyin ve API'nize erişim yetkisi bulunduğundan emin olun.
  • E-posta adresinin API erişimi yok. E-postanın adresinin, paylaşılan otel verilerinize erişme yetkisine sahip olması Hotel Center üzerinden.
  • Anahtar dosyası, hizmet hesabı için doğru dosya değil. Tekliflerinizi otomatikleştirmek ve optimize etmek için yeni bir .JSON indirmek için Google Cloud konsolunu ve uygulamanızın doğru sertifikayı gösterdiğinden emin olun.
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:
  • &quot;https://www.googleapis.com/auth/travelpartner&quot;
  • &quot;https://travelpartnerprices.googleapis.com&quot;
  • &quot;https://www.googleapis.com/auth/travel-partner-price-upload&quot;
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.