مجوز API

این مستندات دستورالعمل‌های گام به گام را برای راه‌اندازی OAuth2.0 در برنامه شما هنگام دسترسی به APIهای هتل مانند Travel Partner API و Price Feeds API ارائه می‌دهد. برای تأیید برنامه خود به استفاده از OAuth 2.0 برای دسترسی به APIهای Google مراجعه کنید.

راه اندازی OAuth 2.0

OAuth 2.0 مستلزم این است که خود را با استفاده از یک حساب سرویس مرتبط با حساب Google خود شناسایی کنید. حساب سرویس کلید خصوصی شما را در ازای توکن دسترسی OAuth 2.0 ارسال می کند. سپس می‌توانید از این نشانه در تماس‌های با APIهای هتل برای داده‌های فقط خواندنی ، مانند داده‌های قیمت‌گذاری، هتل و گزارش‌های تشخیصی درباره فید قیمت هتل خود استفاده کنید.

توکن های دسترسی برای یک ساعت (3600 ثانیه) خوب هستند.

اگر قبلا ClientLogin را اجرا کرده اید، رویکرد OAuth 2.0 مشابه است، با تفاوت های زیر:

  • برنامه شما از یک حساب سرویس Google برای دسترسی به API استفاده می کند.
  • هنگام فراخوانی APIها، یک نشانه دسترسی OAuth 2.0 را در سرصفحه Authorization HTTP ارسال می کنید.

برای تنظیم حساب خود برای استفاده از OAuth 2.0 با هر API هتل، این مراحل را انجام دهید:

  1. یک پروژه جدید در کنسول Google Cloud ایجاد کنید

  2. یک حساب سرویس و اعتبار آن ایجاد کنید

  3. به حساب سرویس خود اجازه دسترسی به داده های هتل خود را بدهید

هر یک از این مراحل در بخش های بعدی توضیح داده شده است.

مرحله 1: یک پروژه کنسول Google Cloud جدید ایجاد کنید

کنسول Google Cloud برای مدیریت و مشاهده داده‌های ترافیک، احراز هویت و اطلاعات صورت‌حساب برای APIهای Google که پروژه‌های شما استفاده می‌کنند استفاده می‌شود.

در کنسول Google Cloud، پروژه مجموعه‌ای از تنظیمات، اعتبارنامه‌ها و ابرداده‌های مربوط به برنامه‌ای است که روی آن کار می‌کنید و از APIهای برنامه‌نویس Google و منابع Google Cloud استفاده می‌کند.

کنسول Google Cloud همچنین برای تولید اعتبار API، فعال کردن APIها و مدیریت تیم و اطلاعات صورتحساب مرتبط با پروژه شما استفاده می‌شود.

برای ایجاد یک پروژه کنسول Google Cloud جدید:

  1. وارد حساب کاربری جیمیل یا گوگل خود شوید.

  2. کنسول Google Cloud را باز کنید. اگر این اولین پروژه شماست، نمای اصلی یک دکمه CREATE PROJECT را نمایش می دهد:

    شکل 1

  3. روی دکمه CREATE PROJECT کلیک کنید. کنسول Google Cloud گفتگوی پروژه جدید را نمایش می دهد:

    شکل 2

    در قسمت ورودی نام پروژه یک نام مناسب برای پروژه جدید خود وارد کنید. در زیر فیلد، کنسول Google Cloud یک شناسه پروژه برای شما ایجاد می‌کند و اطمینان می‌دهد که شناسه در همه پروژه‌ها منحصربه‌فرد است. به عنوان مثال، اگر «پروژه جدید من» را وارد کنید، کنسول Google Cloud یک شناسه مانند my-new-project-266022 اختصاص می‌دهد.

  4. برای ایجاد پروژه جدید خود روی دکمه Create کلیک کنید.

  5. از منوی پیمایش برای انتخاب APIs & Services > Dashboard استفاده کنید.

    شکل 3

    تصویر زیر منوی ناوبری را در سمت چپ بالای کنسول Google Cloud نشان می دهد. این نمای داشبورد پروژه شما را نشان می دهد:

    شکل 4

برای اطلاعات بیشتر به ایجاد و مدیریت پروژه ها مراجعه کنید.

مرحله 2: یک حساب کاربری ایجاد کنید و اعتبار آن را ایجاد کنید

حساب های سرویس توسط تعاملات سرور به سرور مانند تعاملات بین یک برنامه وب و داده های هتل شما استفاده می شود.

برای ایجاد و پیکربندی یک حساب سرویس:

  1. در نمای اصلی Google API Console، روی Credentials در ناوبری سمت چپ کلیک کنید. کنسول Google Cloud نمای اعتبارنامه را نمایش می دهد.

    نمای Credentials شناسه های مشتری و اعتبارنامه های پروژه شما را نشان می دهد. برنامه شما هنگام درخواست رمز دسترسی OAuth 2.0 از شناسه مشتری استفاده می کند. پروژه های جدید هنوز هیچ مشتری یا اعتباری ندارند.

  2. روی پیوند اعتبارنامه‌ها در APIها و خدمات کلیک کنید.

  3. روی دکمه Create credentials کلیک کنید و از فیلتر گزینه Service account key را انتخاب کنید. نمای کلید Create account account نمایش داده می شود.

  4. از فیلتر حساب سرویس ، حساب سرویس جدید را انتخاب کنید.

  5. نام حساب سرویس و شناسه حساب سرویس را وارد کنید.

    نام می تواند هر چیزی باشد که شما می خواهید، اما شناسه حساب باید در همه پروژه ها منحصر به فرد باشد. کنسول Google Cloud بر اساس نامی که وارد کرده اید، یک شناسه حساب منحصر به فرد برای شما ایجاد می کند.

  6. JSON را برای نوع کلید انتخاب کنید. JSON مورد نیاز است .

  7. روی دکمه Create کلیک کنید. کنسول Google Cloud یک جفت کلید خصوصی یا عمومی برای پروژه شما ایجاد می کند. کلید خصوصی در مکان پیش فرضی که مرورگر شما دانلودها را ذخیره می کند، ذخیره می شود. شما باید فایل با فرمت .JSON را دانلود کنید .

    شما از کلید خصوصی در اسکریپت ها یا سایر برنامه هایی که به API شما دسترسی دارند استفاده می کنید.

    کنسول Google Cloud پس از اتمام تولید کلیدها، پیام "حساب سرویس ایجاد شد" را نمایش می دهد.

  8. روی دکمه OK, got it کلیک کنید. کنسول Google Cloud شما را به نمای اعتبارنامه باز می گرداند. برای تأیید جزئیات مربوط به حساب سرویس خود و دیدن حساب سرویس مرتبط با پروژه خود، روی مدیریت حساب های خدماتی در این نما کلیک کنید.

    حساب سرویس اکنون دارای اعتبار زیر است:

    • شناسه مشتری: یک شناسه منحصربه‌فرد که برنامه شما هنگام درخواست نشانه دسترسی OAuth 2.0 از آن استفاده می‌کند.
    • آدرس ایمیل: یک آدرس ایمیل ایجاد شده برای حساب سرویس، به شکل " account_name @ project_name .google.com.iam.gserviceaccount.com".
    • اثر انگشت گواهی: شناسه کلید خصوصی که دانلود کرده اید.

برای اطلاعات بیشتر، به استفاده از OAuth 2.0 برای برنامه های کاربردی سرور به سرور مراجعه کنید.

مرحله 3: به حساب خدمات اجازه دسترسی به اطلاعات مرکز هتل خود را بدهید

مرحله آخر این است که حساب سرویس جدید را با دسترسی به مرکز هتل خود ارائه دهید. حساب سرویس با آدرس ایمیل ایجاد شده ای که در مرحله قبل ایجاد کردید شناسایی می شود. با استفاده از تنظیمات اشتراک‌گذاری مرکز هتل، دسترسی به این حساب را فراهم می‌کنید.

اگر دسترسی مناسبی برای افزودن کاربران به حساب ندارید، با استفاده از فرم تماس با ما با تیم Google Hotels تماس بگیرید و درخواست کنید که مالکیت حساب خود را تنظیم کنید. می‌توانید درخواست کنید که یک یا چند ایمیل به مالک ارسال شود. برای اطلاعات بیشتر در مورد دسترسی به مرکز هتل، به لینک مرکز هتل و تبلیغات گوگل مراجعه کنید.

برای دسترسی یک حساب سرویس به داده های مرکز هتل خود:

  1. در یک پنجره مرورگر جدید، مرکز هتل را باز کنید.شکل 7

  2. در بنر Hotel Center by Google ، روی نماد افزودن کاربر کلیک کنید تا گفتگوی اشتراک‌گذاری باز شود.

    شکل 8

  3. در قسمت افزودن افراد بیشتر ، آدرس ایمیل حساب خدماتی را که می‌خواهید به مرکز هتل خود اضافه کنید وارد کنید.

  4. گزینه Notify people را انتخاب نگه دارید.

  5. مدیریت را از فیلتر انتخاب کنید.

  6. روی دکمه دعوت کلیک کنید.

  7. پس از اینکه کاربران را به مرکز هتل خود اضافه کردید، حساب سرویس شما باید در عرض 24 ساعت برای دسترسی به API فعال شود.

پس از اینکه Google به شما اطلاع داد که دسترسی به API برای حساب سرویس شما فعال شده است، می توانید با OAuth 2.0 به API دسترسی پیدا کنید.

نحوه استفاده از OAuth 2.0

برای دسترسی به API، برنامه شما باید خود را با آدرس ایمیل و کلید خصوصی ایجاد شده حساب سرویس در گوگل شناسایی کند. مکانیسم احراز هویت Google این کلید را با یک نشانه دسترسی OAuth 2.0 که در هدر Authorization در تماس‌های API برنامه خود ارسال می‌کنید، مبادله می‌کند.

برای برقراری تماس API واگذار شده به آماده سازی مراجعه کنید.

محدوده ها

موارد زیر SCOPES برای API هتل ها هستند:

Travel Partner API: "https://www.googleapis.com/auth/travelpartner"

API Partner Prices Travel: "https://travelpartnerprices.googleapis.com"

API Feeds Price: "https://www.googleapis.com/auth/travel-partner-price-upload"

هنگام ایجاد اعتبارنامه باید حساب سرویس را مشخص کنید. به ایجاد حساب سرویس و ایجاد اعتبار آن مراجعه کنید.

هنگام توسعه برنامه خود، مطمئن شوید که بهترین روش ها را برای تأیید اعتبار برنامه خود با استفاده از کلیدهای API دنبال کنید. بیشتر بدانید .

مثال

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

Travel Partner API به شرکای اقامتی اجازه می دهد تا اطلاعات مرکز هتل را بازیابی کنند و داده های مرکز هتل را برای مدیریت حساب های بزرگ یا پیچیده تغییر دهند.

دستورالعمل های راه اندازی OAUTH 2.0 را برای دریافت مجوز برای Travel Partner API خود دنبال کنید.

وقتی یک پروژه جدید برای Travel Partners API ایجاد می‌کنید، باید دسترسی به پروژه جدید کنسول Google Cloud خود را فعال کنید.

مراحل را برای فعال کردن دسترسی به Travel Partners API دنبال کنید:

  1. به نمای داشبورد پروژه خود بروید.

  2. روی Enable APIs and Services کلیک کنید. این صفحه خوش آمدگویی کتابخانه API را نمایش می دهد.

  3. در قسمت جستجو، شروع به تایپ "Travel Partner API" کنید و سپس کنسول لیستی از APIهایی را نشان می دهد که با آنچه شما تایپ می کنید مطابقت دارند.

  4. روی API که در جدول مطابقت دارد کلیک کنید. کنسول Google Cloud توضیحاتی در مورد آن API نمایش می دهد.

  5. روی دکمه Enable API کلیک کنید تا این API برای پروژه شما فعال شود.

برای اطلاعات بیشتر، به فعال کردن و غیرفعال کردن خدمات مراجعه کنید.

Travel Partner API اکنون برای پروژه جدید حساب Google شما فعال شده است.

دامنه API Travel Partner این است: "https://www.googleapis.com/auth/travelpartner"

نقطه پایانی برای Travel Partner API این است: "https://travelpartner.googleapis.com/v3/accounts/<account_id>/<path>"

Travel Partner Prices API

Travel Partner Prices API به شرکای اقامتی اجازه می دهد تا قیمت ملک را به Google ارسال کنند. به آن قیمت گذاری (LoS) نیز گفته می شود.

دستورالعمل‌های راه‌اندازی OAUTH 2.0 را برای دریافت مجوز برای Travel Partner Prices API خود دنبال کنید.

وقتی پروژه جدیدی برای Travel Partners Prices API ایجاد می‌کنید، باید دسترسی به پروژه کنسول Google Cloud جدید خود را فعال کنید که مشابه دستورالعمل‌های ارائه شده در Travel Partner API است.

به مراحل ارائه شده در Travel Partner API مراجعه کنید و برای فعال کردن پروژه خود، همه نمونه های "Travel Partner API" را با "Travel Partner Prices API" جایگزین کنید.

دامنه API Travel Partner Prices عبارت است از: "https://travelpartnerprices.googleapis.com"

مسیر آپلود برای Travel Partner Prices API این است: "/travel/lodging/uploads/accounts/<account_id>/property_data"

API Feeds Price

Price Feeds API به شرکای اقامتی اجازه می دهد تا داده های قیمت گذاری سفارشی را برای هر هتل ارائه دهند. شرکای اقامتگاه Google می توانند از OAuth2.0 برای احراز هویت و تأیید اعتبار هنگام آپلود قیمت ها در Google استفاده کنند. دستورالعمل های راه اندازی OAUTH 2.0 را برای دریافت مجوز برای Price Feeds API دنبال کنید.

نکاتی که باید به خاطر بسپارید

به تفاوت های مهم در دستورالعمل های مجوز برای Price Feeds API توجه کنید.

  1. شرکا باید با استفاده از همان دستورالعمل‌هایی که در راه‌اندازی OAuth 2.0 ارائه شده است، یک پروژه Price Feeds OAuth2.0 در کنسول Google Cloud ایجاد کنند.

  2. فعال کردن API Feeds Price در کنسول Google Cloud الزامی نیست و می توان آن را نادیده گرفت. شما فقط به یک حساب و کلید خدمات نیاز دارید و سپس از همان حساب و کلید سرویس استفاده کنید تا به پروژه Price Feeds دسترسی به داده‌های مرکز هتل خود بدهید. مراحل باقی مانده ذکر شده در تنظیمات OAuth2.0 را برای تکمیل پیکربندی API خود دنبال کنید.

رمز دسترسی OAuth2.0 را برای فیدهای قیمت دریافت کنید

گام بعدی دریافت رمز دسترسی OAuth2.0 با دامنه بارگذاری قیمت اقامتگاه با استفاده از فایل کلید حساب سرویس است. می‌توانید با پیروی از دستورالعمل‌های ارائه‌شده در آماده‌سازی برای برقراری تماس API واگذار شده، درخواست‌ها را برای پروژه Feeds قیمت خود تأیید کنید و سپس رمز دسترسی را از اعتبارنامه‌های کسب‌شده استخراج کنید و آن را در سرصفحه HTTP "Authorization" تنظیم کنید.

محدوده برای آپلود قیمت اقامت: "https://www.googleapis.com/auth/travel-partner-price-upload"

قیمت های آپلود

پس از دریافت رمز دسترسی، شرکا می توانند فید قیمت خود را مشابه استفاده از IP ثابت برای احراز هویت و مجوز با تغییرات زیر بارگذاری کنند:

  • رمز دسترسی را در سرصفحه 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>

تنظیم OAuth2.0 را برای Price Feeds API آزمایش کنید

می‌توانید تنظیمات OAuth2.0 خود را با آپلود یک فایل خالی یا با داده‌های قیمت واقعی در هر یک از مسیرهای آپلود آزمایش کنید. از جدول برای بررسی وضعیت پاسخ HTTP خود استفاده کنید.

وضعیت پاسخ HTTP پیام
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

عیب یابی

به مشکل بر می خورید؟ بررسی سریع موارد زیر ممکن است مشکل را حل کند.

  1. آیا پروژه ای در کنسول Google Cloud ایجاد کردید؟
  2. آیا سرویس را در پروژه خود فعال کردید؟
  3. آیا پس از کلیک بر روی ایجاد شناسه مشتری و انتخاب حساب سرویس ، یک فایل .JSON یک کلید خصوصی دانلود کردید؟
  4. آیا آدرس ایمیل شناسه مشتری حساب سرویس یک فرم را دریافت کردید: nnnnnnn@app_name.google.com.iam.gserviceaccount.com ؟
  5. آیا با کلیک روی دکمه اشتراک‌گذاری این حساب، حساب مرکز تبلیغات هتل خود را با حساب خدمات به اشتراک گذاشتید؟
  6. آیا آدرس ایمیل حساب سرویس و شناسه شریک خود را برای مدیر حساب فنی خود (TAM) ارسال کردید؟
  7. آیا تماس‌های API شما رمزی را که اخیراً در سربرگ Authorization دریافت کرده‌اید ارسال می‌کند؟
  8. آیا توکن شما بیش از 1 ساعت قدمت دارد؟

جدول زیر برخی از خطاهای رایج و رزولوشن های احتمالی را فهرست می کند:

خطا توضیحات
Invalid credentials این می تواند به معنای چند چیز باشد. اگر با این خطا مواجه شدید، بررسی کنید:
  • شما یک سرصفحه Authorization با یک توکن حامل معتبر مشخص کرده‌اید.
  • سن حامل کمتر از یک ساعت است. یک توکن فقط برای یک ساعت خوب است.
  • شما نام شریک صحیح (با پارامتر رشته کوئری partner ) را مشخص کردید. مقدار، شناسه شریک منحصر به فرد شما است، نه نام شریک شما که در مرکز تبلیغات هتل ظاهر می شود. اگر شناسه شریک خود را نمی دانید، با مدیر حساب فنی خود (TAM) تماس بگیرید.
Not found به احتمال زیاد نقطه پایانی شما نادرست است. بررسی کنید که درخواست GET ارسال می‌کنید و URL درخواست معتبر است (با نحو API که می‌خواهید به آن دسترسی پیدا کنید مطابقت دارد).
Invalid string value یک یا چند قسمت از نقطه پایانی دارای نحو نامعتبر است. برای مثال، ممکن است قسمتی از مسیر را اشتباه نوشته باشید. بررسی کنید که در کل مسیر خود از زیرخط، حروف بزرگ و جمله بندی صحیح استفاده کرده اید.
Unsupported output format این خطا معمولاً هنگام استفاده از Reports API رخ می دهد. شما باید "alt=csv" را در URL درخواست GET خود مشخص کنید. API Reports از JSON پشتیبانی نمی کند.
AccessTokenRefreshError/Invalid grant هنگام اجرای برنامه، ممکن است این خطا به دلایل زیر ایجاد شود:
  • آدرس ایمیل حساب سرویس شما نادرست است. حساب ایمیل موجود در کنسول Google Cloud را بررسی کنید و مطمئن شوید که مجوز دسترسی به API شما را دارد.
  • آدرس ایمیل دسترسی API ندارد. بررسی کنید آیا آدرس ایمیل مجاز به دسترسی به داده‌های هتل‌های شما است که از طریق مرکز هتل به اشتراک گذاشته می‌شود.
  • فایل کلید برای حساب سرویس درست نیست. از کنسول Google Cloud برای دانلود گواهی .JSON جدید استفاده کنید و مطمئن شوید که برنامه شما به سمت راست اشاره می کند.
HotelAdsAPIConnection object has no attribute credentials هنگام اجرای برنامه، مسیر فایل .JSON شما نادرست است.
Invalid scope هنگام اجرای برنامه، محدوده API شما باید یکی از موارد زیر باشد:
  • "https://www.googleapis.com/auth/travelpartner"
  • "https://travelpartnerprices.googleapis.com"
  • "https://www.googleapis.com/auth/travel-partner-price-upload"
Forbidden شناسه حسابی که استفاده می‌کنید، شناسه‌ای است که مجوز دسترسی به آن را ندارید. اگر صاحب حساب فرعی هستید، ممکن است نتوانید به شناسه حساب والد یا ریشه دسترسی داشته باشید.
،

این مستندات دستورالعمل‌های گام به گام را برای راه‌اندازی OAuth2.0 در برنامه شما هنگام دسترسی به APIهای هتل مانند Travel Partner API و Price Feeds API ارائه می‌دهد. برای تأیید برنامه خود به استفاده از OAuth 2.0 برای دسترسی به APIهای Google مراجعه کنید.

راه اندازی OAuth 2.0

OAuth 2.0 مستلزم این است که خود را با استفاده از یک حساب سرویس مرتبط با حساب Google خود شناسایی کنید. حساب سرویس کلید خصوصی شما را در ازای توکن دسترسی OAuth 2.0 ارسال می کند. سپس می‌توانید از این نشانه در تماس‌های با APIهای هتل برای داده‌های فقط خواندنی ، مانند داده‌های قیمت‌گذاری، هتل و گزارش‌های تشخیصی درباره فید قیمت هتل خود استفاده کنید.

توکن های دسترسی برای یک ساعت (3600 ثانیه) خوب هستند.

اگر قبلا ClientLogin را اجرا کرده اید، رویکرد OAuth 2.0 مشابه است، با تفاوت های زیر:

  • برنامه شما از یک حساب سرویس Google برای دسترسی به API استفاده می کند.
  • هنگام فراخوانی APIها، یک نشانه دسترسی OAuth 2.0 را در سرصفحه Authorization HTTP ارسال می کنید.

برای تنظیم حساب خود برای استفاده از OAuth 2.0 با هر API هتل، این مراحل را انجام دهید:

  1. یک پروژه جدید در کنسول Google Cloud ایجاد کنید

  2. یک حساب سرویس و اعتبار آن ایجاد کنید

  3. به حساب سرویس خود اجازه دسترسی به داده های هتل خود را بدهید

هر یک از این مراحل در بخش های بعدی توضیح داده شده است.

مرحله 1: یک پروژه کنسول Google Cloud جدید ایجاد کنید

کنسول Google Cloud برای مدیریت و مشاهده داده‌های ترافیک، احراز هویت و اطلاعات صورت‌حساب برای APIهای Google که پروژه‌های شما استفاده می‌کنند استفاده می‌شود.

در کنسول Google Cloud، پروژه مجموعه‌ای از تنظیمات، اعتبارنامه‌ها و ابرداده‌های مربوط به برنامه‌ای است که روی آن کار می‌کنید و از APIهای برنامه‌نویس Google و منابع Google Cloud استفاده می‌کند.

کنسول Google Cloud همچنین برای تولید اعتبار API، فعال کردن APIها و مدیریت تیم و اطلاعات صورتحساب مرتبط با پروژه شما استفاده می‌شود.

برای ایجاد یک پروژه کنسول Google Cloud جدید:

  1. وارد حساب کاربری جیمیل یا گوگل خود شوید.

  2. کنسول Google Cloud را باز کنید. اگر این اولین پروژه شماست، نمای اصلی یک دکمه CREATE PROJECT را نمایش می دهد:

    شکل 1

  3. روی دکمه CREATE PROJECT کلیک کنید. کنسول Google Cloud گفتگوی پروژه جدید را نمایش می دهد:

    شکل 2

    در قسمت ورودی نام پروژه یک نام مناسب برای پروژه جدید خود وارد کنید. در زیر فیلد، کنسول Google Cloud یک شناسه پروژه برای شما ایجاد می‌کند و اطمینان می‌دهد که شناسه در همه پروژه‌ها منحصربه‌فرد است. به عنوان مثال، اگر «پروژه جدید من» را وارد کنید، کنسول Google Cloud یک شناسه مانند my-new-project-266022 اختصاص می‌دهد.

  4. برای ایجاد پروژه جدید خود روی دکمه Create کلیک کنید.

  5. از منوی پیمایش برای انتخاب APIs & Services > Dashboard استفاده کنید.

    شکل 3

    تصویر زیر منوی ناوبری را در سمت چپ بالای کنسول Google Cloud نشان می دهد. این نمای داشبورد پروژه شما را نشان می دهد:

    شکل 4

برای اطلاعات بیشتر به ایجاد و مدیریت پروژه ها مراجعه کنید.

مرحله 2: یک حساب کاربری ایجاد کنید و اعتبار آن را ایجاد کنید

حساب های سرویس توسط تعاملات سرور به سرور مانند تعاملات بین یک برنامه وب و داده های هتل شما استفاده می شود.

برای ایجاد و پیکربندی یک حساب سرویس:

  1. در نمای اصلی Google API Console، روی Credentials در ناوبری سمت چپ کلیک کنید. کنسول Google Cloud نمای اعتبارنامه را نمایش می دهد.

    نمای Credentials شناسه های مشتری و اعتبارنامه های پروژه شما را نشان می دهد. برنامه شما هنگام درخواست رمز دسترسی OAuth 2.0 از شناسه مشتری استفاده می کند. پروژه های جدید هنوز هیچ مشتری یا اعتباری ندارند.

  2. روی پیوند اعتبارنامه‌ها در APIها و خدمات کلیک کنید.

  3. روی دکمه Create credentials کلیک کنید و از فیلتر گزینه Service account key را انتخاب کنید. نمای کلید Create account account نمایش داده می شود.

  4. از فیلتر حساب سرویس ، حساب سرویس جدید را انتخاب کنید.

  5. نام حساب سرویس و شناسه حساب سرویس را وارد کنید.

    نام می تواند هر چیزی باشد که شما می خواهید، اما شناسه حساب باید در همه پروژه ها منحصر به فرد باشد. کنسول Google Cloud بر اساس نامی که وارد کرده اید، یک شناسه حساب منحصر به فرد برای شما ایجاد می کند.

  6. JSON را برای نوع کلید انتخاب کنید. JSON مورد نیاز است .

  7. روی دکمه Create کلیک کنید. کنسول Google Cloud یک جفت کلید خصوصی یا عمومی برای پروژه شما ایجاد می کند. کلید خصوصی در مکان پیش فرضی که مرورگر شما دانلودها را ذخیره می کند، ذخیره می شود. شما باید فایل با فرمت .JSON را دانلود کنید .

    شما از کلید خصوصی در اسکریپت ها یا سایر برنامه هایی که به API شما دسترسی دارند استفاده می کنید.

    کنسول Google Cloud پس از اتمام تولید کلیدها، پیام "حساب سرویس ایجاد شد" را نمایش می دهد.

  8. روی دکمه OK, got it کلیک کنید. کنسول Google Cloud شما را به نمای اعتبارنامه باز می گرداند. برای تأیید جزئیات مربوط به حساب سرویس خود و دیدن حساب سرویس مرتبط با پروژه خود، روی مدیریت حساب های خدماتی در این نما کلیک کنید.

    حساب سرویس اکنون دارای اعتبار زیر است:

    • شناسه مشتری: یک شناسه منحصربه‌فرد که برنامه شما هنگام درخواست نشانه دسترسی OAuth 2.0 از آن استفاده می‌کند.
    • آدرس ایمیل: یک آدرس ایمیل ایجاد شده برای حساب سرویس، به شکل " account_name @ project_name .google.com.iam.gserviceaccount.com".
    • اثر انگشت گواهی: شناسه کلید خصوصی که دانلود کرده اید.

برای اطلاعات بیشتر، به استفاده از OAuth 2.0 برای برنامه های کاربردی سرور به سرور مراجعه کنید.

مرحله 3: به حساب خدمات اجازه دسترسی به اطلاعات مرکز هتل خود را بدهید

مرحله آخر این است که حساب سرویس جدید را با دسترسی به مرکز هتل خود ارائه دهید. حساب سرویس با آدرس ایمیل ایجاد شده ای که در مرحله قبل ایجاد کردید شناسایی می شود. با استفاده از تنظیمات اشتراک‌گذاری مرکز هتل، دسترسی به این حساب را فراهم می‌کنید.

اگر دسترسی مناسبی برای افزودن کاربران به حساب ندارید، با استفاده از فرم تماس با ما با تیم Google Hotels تماس بگیرید و درخواست کنید که مالکیت حساب خود را تنظیم کنید. می‌توانید درخواست کنید که یک یا چند ایمیل به مالک ارسال شود. برای اطلاعات بیشتر در مورد دسترسی به مرکز هتل، به لینک مرکز هتل و تبلیغات گوگل مراجعه کنید.

برای دسترسی یک حساب سرویس به داده های مرکز هتل خود:

  1. در یک پنجره مرورگر جدید، مرکز هتل را باز کنید.شکل 7

  2. در بنر Hotel Center by Google ، روی نماد افزودن کاربر کلیک کنید تا گفتگوی اشتراک‌گذاری باز شود.

    شکل 8

  3. در قسمت افزودن افراد بیشتر ، آدرس ایمیل حساب خدماتی را که می‌خواهید به مرکز هتل خود اضافه کنید وارد کنید.

  4. گزینه Notify people را انتخاب نگه دارید.

  5. مدیریت را از فیلتر انتخاب کنید.

  6. روی دکمه دعوت کلیک کنید.

  7. پس از اینکه کاربران را به مرکز هتل خود اضافه کردید، حساب سرویس شما باید در عرض 24 ساعت برای دسترسی به API فعال شود.

پس از اینکه Google به شما اطلاع داد که دسترسی به API برای حساب سرویس شما فعال شده است، می توانید با OAuth 2.0 به API دسترسی پیدا کنید.

نحوه استفاده از OAuth 2.0

برای دسترسی به API، برنامه شما باید خود را با آدرس ایمیل و کلید خصوصی ایجاد شده حساب سرویس در گوگل شناسایی کند. مکانیسم احراز هویت Google این کلید را با یک نشانه دسترسی OAuth 2.0 که در هدر Authorization در تماس‌های API برنامه خود ارسال می‌کنید، مبادله می‌کند.

برای برقراری تماس API واگذار شده به آماده سازی مراجعه کنید.

محدوده ها

موارد زیر SCOPES برای API هتل ها هستند:

Travel Partner API: "https://www.googleapis.com/auth/travelpartner"

API Partner Prices Travel: "https://travelpartnerprices.googleapis.com"

API Feeds Price: "https://www.googleapis.com/auth/travel-partner-price-upload"

هنگام ایجاد اعتبارنامه باید حساب سرویس را مشخص کنید. به ایجاد حساب سرویس و ایجاد اعتبار آن مراجعه کنید.

هنگام توسعه برنامه خود، مطمئن شوید که بهترین روش ها را برای تأیید اعتبار برنامه خود با استفاده از کلیدهای API دنبال کنید. بیشتر بدانید .

مثال

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

Travel Partner API به شرکای اقامتی اجازه می دهد تا اطلاعات مرکز هتل را بازیابی کنند و داده های مرکز هتل را برای مدیریت حساب های بزرگ یا پیچیده تغییر دهند.

دستورالعمل های راه اندازی OAUTH 2.0 را برای دریافت مجوز برای Travel Partner API خود دنبال کنید.

وقتی یک پروژه جدید برای Travel Partners API ایجاد می‌کنید، باید دسترسی به پروژه جدید کنسول Google Cloud خود را فعال کنید.

مراحل را برای فعال کردن دسترسی به Travel Partners API دنبال کنید:

  1. به نمای داشبورد پروژه خود بروید.

  2. روی Enable APIs and Services کلیک کنید. این صفحه خوش آمدگویی کتابخانه API را نمایش می دهد.

  3. در قسمت جستجو، شروع به تایپ "Travel Partner API" کنید و سپس کنسول لیستی از APIهایی را نشان می دهد که با آنچه شما تایپ می کنید مطابقت دارند.

  4. روی API که در جدول مطابقت دارد کلیک کنید. کنسول Google Cloud توضیحاتی در مورد آن API نمایش می دهد.

  5. روی دکمه Enable API کلیک کنید تا این API برای پروژه شما فعال شود.

برای اطلاعات بیشتر، به فعال کردن و غیرفعال کردن خدمات مراجعه کنید.

Travel Partner API اکنون برای پروژه جدید حساب Google شما فعال شده است.

دامنه API Travel Partner این است: "https://www.googleapis.com/auth/travelpartner"

نقطه پایانی برای Travel Partner API این است: "https://travelpartner.googleapis.com/v3/accounts/<account_id>/<path>"

Travel Partner Prices API

Travel Partner Prices API به شرکای اقامتی اجازه می دهد تا قیمت ملک را به Google ارسال کنند. به آن قیمت گذاری (LoS) نیز گفته می شود.

دستورالعمل‌های راه‌اندازی OAUTH 2.0 را برای دریافت مجوز برای Travel Partner Prices API خود دنبال کنید.

وقتی پروژه جدیدی برای Travel Partners Prices API ایجاد می‌کنید، باید دسترسی به پروژه کنسول Google Cloud جدید خود را فعال کنید که مشابه دستورالعمل‌های ارائه شده در Travel Partner API است.

به مراحل ارائه شده در Travel Partner API مراجعه کنید و برای فعال کردن پروژه خود، همه نمونه های "Travel Partner API" را با "Travel Partner Prices API" جایگزین کنید.

دامنه API Travel Partner Prices عبارت است از: "https://travelpartnerprices.googleapis.com"

مسیر آپلود برای Travel Partner Prices API این است: "/travel/lodging/uploads/accounts/<account_id>/property_data"

API Feeds Price

Price Feeds API به شرکای اقامتی اجازه می دهد تا داده های قیمت گذاری سفارشی را برای هر هتل ارائه دهند. شرکای اقامتگاه Google می توانند از OAuth2.0 برای احراز هویت و تأیید اعتبار هنگام آپلود قیمت ها در Google استفاده کنند. دستورالعمل های راه اندازی OAUTH 2.0 را برای دریافت مجوز برای Price Feeds API دنبال کنید.

نکاتی که باید به خاطر بسپارید

به تفاوت های مهم در دستورالعمل های مجوز برای Price Feeds API توجه کنید.

  1. شرکا باید با استفاده از همان دستورالعمل‌هایی که در راه‌اندازی OAuth 2.0 ارائه شده است، یک پروژه Price Feeds OAuth2.0 در کنسول Google Cloud ایجاد کنند.

  2. فعال کردن API Feeds Price در کنسول Google Cloud الزامی نیست و می توان آن را نادیده گرفت. شما فقط به یک حساب و کلید خدمات نیاز دارید و سپس از همان حساب و کلید سرویس استفاده کنید تا به پروژه Price Feeds دسترسی به داده‌های مرکز هتل خود بدهید. مراحل باقی مانده ذکر شده در تنظیمات OAuth2.0 را برای تکمیل پیکربندی API خود دنبال کنید.

رمز دسترسی OAuth2.0 را برای فیدهای قیمت دریافت کنید

گام بعدی دریافت رمز دسترسی OAuth2.0 با دامنه بارگذاری قیمت اقامتگاه با استفاده از فایل کلید حساب سرویس است. می‌توانید با پیروی از دستورالعمل‌های ارائه‌شده در آماده‌سازی برای برقراری تماس API واگذار شده، درخواست‌ها را برای پروژه Feeds قیمت خود تأیید کنید و سپس رمز دسترسی را از اعتبارنامه‌های کسب‌شده استخراج کنید و آن را در سرصفحه HTTP "Authorization" تنظیم کنید.

محدوده برای آپلود قیمت اقامت: "https://www.googleapis.com/auth/travel-partner-price-upload"

قیمت های آپلود

پس از دریافت رمز دسترسی، شرکا می توانند فید قیمت خود را مشابه استفاده از IP ثابت برای احراز هویت و مجوز با تغییرات زیر بارگذاری کنند:

  • رمز دسترسی را در سرصفحه 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>

تنظیم OAuth2.0 را برای Price Feeds API آزمایش کنید

می‌توانید تنظیمات OAuth2.0 خود را با آپلود یک فایل خالی یا با داده‌های قیمت واقعی در هر یک از مسیرهای آپلود آزمایش کنید. از جدول برای بررسی وضعیت پاسخ HTTP خود استفاده کنید.

وضعیت پاسخ HTTP پیام
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

عیب یابی

به مشکل بر می خورید؟ بررسی سریع موارد زیر ممکن است مشکل را حل کند.

  1. آیا پروژه ای در کنسول Google Cloud ایجاد کردید؟
  2. آیا سرویس را در پروژه خود فعال کردید؟
  3. آیا پس از کلیک بر روی ایجاد شناسه مشتری و انتخاب حساب سرویس ، یک فایل .JSON یک کلید خصوصی دانلود کردید؟
  4. آیا آدرس ایمیل شناسه مشتری حساب سرویس یک فرم را دریافت کردید: nnnnnnn@app_name.google.com.iam.gserviceaccount.com ؟
  5. آیا با کلیک روی دکمه اشتراک‌گذاری این حساب، حساب مرکز تبلیغات هتل خود را با حساب خدمات به اشتراک گذاشتید؟
  6. آیا آدرس ایمیل حساب سرویس و شناسه شریک خود را برای مدیر حساب فنی خود (TAM) ارسال کردید؟
  7. آیا تماس‌های API شما رمزی را که اخیراً در سربرگ Authorization دریافت کرده‌اید ارسال می‌کند؟
  8. آیا توکن شما بیش از 1 ساعت قدمت دارد؟

جدول زیر برخی از خطاهای رایج و رزولوشن های احتمالی را فهرست می کند:

خطا توضیحات
Invalid credentials این می تواند به معنای چند چیز باشد. اگر با این خطا مواجه شدید، بررسی کنید:
  • شما یک سرصفحه Authorization با یک توکن حامل معتبر مشخص کرده‌اید.
  • سن حامل کمتر از یک ساعت است. یک توکن فقط برای یک ساعت خوب است.
  • شما نام شریک صحیح (با پارامتر رشته کوئری partner ) را مشخص کردید. مقدار، شناسه شریک منحصر به فرد شما است، نه نام شریک شما که در مرکز تبلیغات هتل ظاهر می شود. اگر شناسه شریک خود را نمی دانید، با مدیر حساب فنی خود (TAM) تماس بگیرید.
Not found به احتمال زیاد نقطه پایانی شما نادرست است. بررسی کنید که درخواست GET ارسال می‌کنید و URL درخواست معتبر است (با نحو API که می‌خواهید به آن دسترسی پیدا کنید مطابقت دارد).
Invalid string value یک یا چند قسمت از نقطه پایانی دارای نحو نامعتبر است. برای مثال، ممکن است قسمتی از مسیر را اشتباه نوشته باشید. بررسی کنید که در کل مسیر خود از زیرخط، حروف بزرگ و جمله بندی صحیح استفاده کرده اید.
Unsupported output format این خطا معمولاً هنگام استفاده از Reports API رخ می دهد. شما باید "alt=csv" را در URL درخواست GET خود مشخص کنید. API Reports از JSON پشتیبانی نمی کند.
AccessTokenRefreshError/Invalid grant هنگام اجرای برنامه، ممکن است این خطا به دلایل زیر ایجاد شود:
  • آدرس ایمیل حساب سرویس شما نادرست است. حساب ایمیل موجود در کنسول Google Cloud را بررسی کنید و مطمئن شوید که مجوز دسترسی به API شما را دارد.
  • آدرس ایمیل دسترسی API ندارد. بررسی کنید آیا آدرس ایمیل مجاز به دسترسی به داده‌های هتل‌های شما است که از طریق مرکز هتل به اشتراک گذاشته می‌شود.
  • فایل کلید برای حساب سرویس درست نیست. از کنسول Google Cloud برای دانلود گواهی .JSON جدید استفاده کنید و مطمئن شوید که برنامه شما به سمت راست اشاره می کند.
HotelAdsAPIConnection object has no attribute credentials هنگام اجرای برنامه، مسیر فایل .JSON شما نادرست است.
Invalid scope هنگام اجرای برنامه، محدوده API شما باید یکی از موارد زیر باشد:
  • "https://www.googleapis.com/auth/travelpartner"
  • "https://travelpartnerprices.googleapis.com"
  • "https://www.googleapis.com/auth/travel-partner-price-upload"
Forbidden شناسه حسابی که استفاده می‌کنید، شناسه‌ای است که مجوز دسترسی به آن را ندارید. اگر صاحب حساب فرعی هستید، ممکن است نتوانید به شناسه حساب والد یا ریشه دسترسی داشته باشید.
،

این مستندات دستورالعمل‌های گام به گام را برای راه‌اندازی OAuth2.0 در برنامه شما هنگام دسترسی به APIهای هتل مانند Travel Partner API و Price Feeds API ارائه می‌دهد. برای تأیید برنامه خود به استفاده از OAuth 2.0 برای دسترسی به APIهای Google مراجعه کنید.

راه اندازی OAuth 2.0

OAuth 2.0 مستلزم این است که خود را با استفاده از یک حساب سرویس مرتبط با حساب Google خود شناسایی کنید. حساب سرویس کلید خصوصی شما را در ازای توکن دسترسی OAuth 2.0 ارسال می کند. سپس می‌توانید از این نشانه در تماس‌های با APIهای هتل برای داده‌های فقط خواندنی ، مانند داده‌های قیمت‌گذاری، هتل و گزارش‌های تشخیصی درباره فید قیمت هتل خود استفاده کنید.

توکن های دسترسی برای یک ساعت (3600 ثانیه) خوب هستند.

اگر قبلا ClientLogin را اجرا کرده اید، رویکرد OAuth 2.0 مشابه است، با تفاوت های زیر:

  • برنامه شما از یک حساب سرویس Google برای دسترسی به API استفاده می کند.
  • هنگام فراخوانی APIها، یک نشانه دسترسی OAuth 2.0 را در سرصفحه Authorization HTTP ارسال می کنید.

برای تنظیم حساب خود برای استفاده از OAuth 2.0 با هر API هتل، این مراحل را انجام دهید:

  1. یک پروژه جدید در کنسول Google Cloud ایجاد کنید

  2. یک حساب سرویس و اعتبار آن ایجاد کنید

  3. به حساب سرویس خود اجازه دسترسی به داده های هتل خود را بدهید

هر یک از این مراحل در بخش های بعدی توضیح داده شده است.

مرحله 1: یک پروژه کنسول Google Cloud جدید ایجاد کنید

کنسول Google Cloud برای مدیریت و مشاهده داده‌های ترافیک، احراز هویت و اطلاعات صورت‌حساب برای APIهای Google که پروژه‌های شما استفاده می‌کنند استفاده می‌شود.

در کنسول Google Cloud ، یک پروژه مجموعه ای از تنظیمات ، اعتبارنامه ها و ابرداده در مورد برنامه ای است که شما در آن کار می کنید و از API های Google Developer و Google Cloud Resources استفاده می کند.

کنسول Google Cloud همچنین برای تولید اعتبار API ، فعال کردن API ها و مدیریت تیم و اطلاعات صورتحساب مرتبط با پروژه شما استفاده می شود.

برای ایجاد یک پروژه جدید کنسول Google Cloud:

  1. وارد حساب Gmail یا Google خود شوید.

  2. کنسول Google Cloud را باز کنید. اگر این اولین پروژه شماست ، نمای اصلی دکمه ایجاد پروژه را نشان می دهد:

    شکل 1

  3. روی دکمه ایجاد پروژه کلیک کنید. Google Cloud Console گفتگوی پروژه جدید را نشان می دهد:

    شکل 2

    یک نام دوستانه برای پروژه جدید خود در قسمت ورودی نام پروژه وارد کنید. در زیر این زمینه ، کنسول Google Cloud یک شناسه پروژه را برای شما ایجاد می کند ، و اطمینان می دهد که شناسه در همه پروژه ها بی نظیر است. به عنوان مثال ، اگر "پروژه جدید من" را وارد کنید ، Google Cloud Console شناسه ای مانند my-new-project-266022 را اختصاص می دهد.

  4. برای ایجاد پروژه جدید خود روی دکمه ایجاد کلیک کنید.

  5. برای انتخاب APIS & Services> Dashboard از منوی ناوبری استفاده کنید.

    شکل 3

    تصویر زیر منوی ناوبری را در سمت چپ بالای کنسول Google Cloud نشان می دهد. این نمای داشبورد را برای پروژه شما نشان می دهد:

    شکل 4

برای اطلاعات بیشتر ، به ایجاد و مدیریت پروژه ها مراجعه کنید.

مرحله 2: یک حساب کاربری ایجاد کنید و اعتبار آن را تولید کنید

حساب های خدمات توسط تعامل سرور به سرور مانند موارد بین برنامه وب و داده های هتل شما استفاده می شود.

برای ایجاد و پیکربندی یک حساب خدمات:

  1. در نمای اصلی کنسول Google API ، در ناوبری سمت چپ ، اعتبار خود را کلیک کنید. کنسول Google Cloud نمای اعتبار را نشان می دهد.

    نمای اعتبار ، شناسه های مشتری و اعتبار را برای پروژه شما نشان می دهد. برنامه شما هنگام درخواست نشانه دسترسی OAUTH 2.0 از شناسه مشتری استفاده می کند. پروژه های جدید هنوز هیچ مشتری یا اعتبار ندارند.

  2. روی پیوند API و Services Link کلیک کنید.

  3. بر روی دکمه ایجاد Credentials کلیک کنید ، و کلید Service Account را از فیلتر انتخاب کنید. نمای کلید Create Service Account نمایش داده می شود.

  4. از فیلتر حساب خدمات ، حساب خدمات جدید را انتخاب کنید.

  5. نام حساب خدمات و شناسه حساب خدمات را وارد کنید.

    این نام می تواند هر چیزی باشد که شما می خواهید ، اما شناسه حساب باید در همه پروژه ها بی نظیر باشد. Google Cloud Console بر اساس نامی که وارد کرده اید ، یک شناسه حساب منحصر به فرد برای شما ایجاد می کند.

  6. JSON را برای نوع کلید انتخاب کنید. JSON مورد نیاز است .

  7. روی دکمه Create کلیک کنید. Google Cloud Console یک جفت کلید خصوصی یا عمومی برای پروژه شما ایجاد می کند. کلید خصوصی در مکان پیش فرض که مرورگر شما بارگیری می کند ذخیره می شود. شما باید پرونده فرمت .JSON را بارگیری کنید .

    شما از کلید خصوصی در اسکریپت های خود یا برنامه های دیگر که به API شما دسترسی دارند استفاده می کنید.

    Google Cloud Console پیام "سرویس ایجاد شده" را هنگام اتمام تولید کلیدها نشان می دهد.

  8. روی OK کلیک کنید ، دکمه آن را گرفتید . کنسول Google Cloud شما را به نمای اعتبار باز می گرداند. برای تأیید جزئیات مربوط به حساب خدمات خود و دیدن حساب خدمات مرتبط با پروژه خود ، در این نمایش روی مدیریت حساب های خدمات کلیک کنید.

    حساب خدمات اکنون دارای اعتبار زیر در ارتباط با آن است:

    • شناسه مشتری: یک شناسه منحصر به فرد که برنامه شما هنگام درخواست یک نشانه دسترسی OAUTH 2.0 از آن استفاده می کند.
    • آدرس ایمیل: یک آدرس ایمیل تولید شده برای حساب سرویس ، در فرم " Account_name @ project_name .google.com.iam.gserviceaccount.com".
    • اثر انگشت گواهی: شناسه کلید خصوصی که بارگیری کرده اید.

برای اطلاعات بیشتر ، به استفاده از OAUTH 2.0 برای برنامه های سرور به سرور مراجعه کنید.

مرحله 3: به اطلاعات مرکز هتل خود دسترسی به حساب خدمات ارائه دهید

مرحله آخر ارائه حساب خدمات جدید با دسترسی به مرکز هتل شما است. حساب سرویس توسط آدرس ایمیل تولید شده که در مرحله قبل ایجاد کرده اید شناسایی شده است. شما با استفاده از تنظیمات اشتراک گذاری مرکز هتل به این حساب دسترسی پیدا می کنید.

اگر برای افزودن کاربران به حساب کاربری مناسب ندارید ، با استفاده از فرم تماس با ما با تیم Google Hotels تماس بگیرید و درخواست کنید مالکیت حساب خود را تنظیم کنید. می توانید یک یا چند ایمیل را برای یک مالک درخواست کنید. برای کسب اطلاعات بیشتر در مورد دسترسی به مرکز هتل ، به Link Hotel Center و Google Ads مراجعه کنید.

برای دسترسی به حساب خدمات به داده های مرکز هتل خود:

  1. در یک پنجره مرورگر جدید ، مرکز هتل را باز کنید.شکل 7

  2. در مرکز هتل توسط Google Banner ، روی نماد Add User کلیک کنید تا گفتگوی اشتراک گذاری باز شود.

    شکل 8

  3. در قسمت Add More People ، آدرس ایمیل حساب سرویس را که می خواهید به مرکز هتل خود اضافه کنید وارد کنید.

  4. گزینه Notify People را انتخاب کنید.

  5. مدیریت را از فیلتر انتخاب کنید.

  6. روی دکمه دعوت کلیک کنید.

  7. پس از اضافه کردن کاربران به مرکز هتل خود ، حساب خدمات شما باید در حدود 24 ساعت برای دسترسی API فعال شود.

بعد از اینکه Google به شما اطلاع داد که دسترسی API برای حساب خدمات شما فعال است ، می توانید دسترسی به API را با OAUTH 2.0 شروع کنید.

نحوه استفاده از oauth 2.0

برای دسترسی به API ، برنامه شما باید خود را با آدرس ایمیل تولید شده حساب سرویس و کلید خصوصی به Google شناسایی کند. مکانیسم احراز هویت Google این کلید را برای یک نشانه دسترسی OAUTH 2.0 که در عنوان Authorization در تماس های API برنامه خود منتقل می کنید ، مبادله می کند.

برای تهیه یک تماس API تفویض شده به آماده سازی مراجعه کنید.

محدوده ها

موارد زیر SCOPES for Hotels API است:

API شریک مسافرتی: "https://www.googleapis.com/auth/travelpartner"

قیمت شریک مسافرتی API: "https://travelpartnerprices.googleapis.com"

قیمت API: "https://www.googleapis.com/auth/travel-partner-price-upload"

هنگام ایجاد اعتبار ، باید حساب سرویس را مشخص کنید. برای ایجاد یک حساب کاربری و ایجاد اعتبار آن مراجعه کنید.

هنگام تهیه برنامه خود ، حتماً بهترین شیوه ها را برای تأیید اعتبار برنامه خود با استفاده از کلیدهای API دنبال کنید. بیشتر بدانید .

مثال

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 شریک مسافرتی

API شریک مسافرتی به شرکای اقامتگاه اجازه می دهد تا اطلاعات مرکز هتل را بازیابی کنند و داده های مرکز هتل را برای مدیریت حساب های بزرگ یا پیچیده تغییر دهند.

برای دریافت مجوز برای API شریک مسافرتی خود ، دستورالعمل های تنظیم OAUTH 2.0 را دنبال کنید.

هنگامی که یک پروژه جدید برای API شرکای مسافرتی ایجاد می کنید ، باید دسترسی به پروژه جدید کنسول Google Cloud خود را فعال کنید.

مراحل را برای فعال کردن دسترسی به شرکای مسافرتی API دنبال کنید:

  1. به نمای داشبورد پروژه خود بروید.

  2. روی فعال کردن API ها و خدمات کلیک کنید. این صفحه صفحه خوش آمدید کتابخانه API را نشان می دهد.

  3. در قسمت جستجو ، شروع به تایپ "API شریک مسافرتی" کنید ، و سپس ، کنسول لیستی از API ها را نشان می دهد که مطابق با آنچه شما تایپ می کنید مطابقت دارد.

  4. روی API که در جدول مطابقت دارد کلیک کنید. کنسول Google Cloud توضیحی در مورد آن API نشان می دهد.

  5. برای فعال کردن این API برای پروژه خود ، بر روی دکمه Enable API کلیک کنید.

برای اطلاعات بیشتر ، به خدمات فعال سازی و غیرفعال کردن مراجعه کنید.

API شریک مسافرتی اکنون برای پروژه جدید حساب Google شما فعال شده است.

دامنه API شریک مسافرتی: "https://www.googleapis.com/auth/travelpartner"

نقطه پایانی API شریک مسافرتی عبارت است از: "https://travelpartner.googleapis.com/v3/accounts/<account_id>/<path>"

قیمت شریک مسافرتی API

قیمت شریک مسافرتی API به شرکای اقامتگاه اجازه می دهد تا قیمت ملک را به Google ارسال کنند. همچنین به عنوان طول مدت اقامت (LOS) گفته می شود.

دستورالعمل های تنظیم OAUTH 2.0 را دنبال کنید تا مجوز برای API قیمت شریک مسافرتی خود را دریافت کنید.

هنگامی که یک پروژه جدید برای API Prices Prices Travel Partners ایجاد می کنید ، باید دسترسی به پروژه جدید کنسول Google Cloud خود را که مشابه دستورالعمل های ارائه شده در API شریک مسافرتی است ، امکان پذیر کنید.

به مراحل ارائه شده در API شریک مسافرتی مراجعه کنید و تمام موارد "API شریک مسافرتی" را با "قیمت شریک سفر API" جایگزین کنید تا پروژه خود را فعال کنید.

دامنه API قیمت شریک مسافرتی: "https://travelpartnerprices.googleapis.com"

مسیر بارگذاری برای قیمت های شریک سفر API: "/travel/lodging/uploads/accounts/<account_id>/property_data"

قیمت API را تغذیه می کند

API Price Feeds به شرکای اقامتگاه اجازه می دهد تا داده های قیمت گذاری سفارشی را برای هر هتل ارائه دهند. شرکای Lodging Google می توانند هنگام بارگذاری قیمت در Google ، از OAuth2.0 برای تأیید اعتبار و مجاز بودن خود استفاده کنند. برای دریافت مجوز برای API Price Feeds ، دستورالعمل های تنظیم OAUTH 2.0 را دنبال کنید.

نکاتی که باید به خاطر بسپارید

توجه داشته باشید که تفاوت های مهم در دستورالعمل های مجوز برای API FEDS Price.

  1. شرکا باید با استفاده از همان دستورالعمل هایی که در تنظیم OAUTH 2.0 ارائه شده است ، یک پروژه جدید FEEDS OAUTH2.0 را در Google Cloud Console ایجاد کنند.

  2. فعال کردن قیمت API در Google Cloud Console لازم نیست و می توان آن را نادیده گرفت. شما فقط به یک حساب کاربری و کلید خدمات نیاز دارید و سپس از همان حساب خدمات و کلید استفاده می کنید تا بتوانید به داده های مرکز هتل خود به داده های مرکز هتل خود دسترسی پیدا کنید. برای تکمیل پیکربندی API خود ، مراحل باقیمانده ذکر شده در تنظیم OAUTH2.0 را دنبال کنید.

برای خوراک قیمت OAUTH2.0 دریافت کنید

مرحله بعدی دریافت یک نشانه دسترسی OAUTH2.0 با دامنه بارگذاری قیمت اقامتگاه با استفاده از پرونده کلید حساب کاربری سرویس است. شما می توانید با رعایت دستورالعمل های ارائه شده در تهیه یک تماس API تفویض شده ، درخواست های خود را به پروژه فیدهای قیمت خود مجاز کنید و سپس نشانه دسترسی را از اعتبار بدست آمده استخراج کرده و آن را در عنوان "Authorization" HTTP تنظیم کنید.

دامنه بارگذاری قیمت اقامت: "https://www.googleapis.com/auth/travel-partner-price-upload"

قیمت ها

پس از دریافت نشانه دسترسی ، شرکا می توانند فید قیمت خود را شبیه به استفاده از IP استاتیک برای تأیید اعتبار و مجوز با اصلاح زیر بارگذاری کنند:

  • نشانه دسترسی را در عنوان "Authorization" HTTP تنظیم کنید
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>

تست OAUTH2.0 تنظیم برای فیدهای قیمت API

می توانید با بارگذاری یک فایل خالی یا با داده های قیمت واقعی در هر یک از مسیرهای بارگذاری ، تنظیم OAuth2.0 خود را آزمایش کنید. برای بررسی وضعیت پاسخ HTTP خود از جدول استفاده کنید.

وضعیت پاسخ HTTP پیام
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

عیب یابی

با مشکلات روبرو می شوید؟ انجام یک بررسی سریع در مورد موارد زیر ممکن است مشکل را حل کند.

  1. آیا در کنسول Google Cloud پروژه ای ایجاد کرده اید؟
  2. آیا سرویس را در پروژه خود فعال کرده اید؟
  3. آیا پس از کلیک بر روی ایجاد شناسه مشتری و انتخاب حساب سرویس ، یک پرونده .JSON - یک کلید خصوصی را بارگیری کرده اید؟
  4. آیا آدرس ایمیل شناسه حساب کاربری خدمات از یک فرم دریافت کرده اید: nnnnnnn@app_name.google.com.iam.gserviceaccount.com ؟
  5. آیا با کلیک روی دکمه اشتراک این حساب ، حساب مرکز تبلیغات هتل خود را با حساب سرویس به اشتراک گذاشتید؟
  6. آیا آدرس ایمیل حساب خدمات و شناسه شریک زندگی خود را به مدیر حساب فنی خود (TAM) ارسال کرده اید؟
  7. آیا تماس های API شما در حال عبور از یک نشانه اخیراً به دست آمده در عنوان Authorization است؟
  8. آیا نشانه شما بیش از 1 ساعت است؟

در جدول زیر برخی از خطاهای متداول و قطعنامه های احتمالی ذکر شده است:

خطا توضیحات
Invalid credentials این می تواند به معنای چند چیز باشد. اگر با این خطا روبرو شدید ، آن را بررسی کنید:
  • شما یک عنوان Authorization با یک نشانه حامل معتبر مشخص کرده اید.
  • نشانه تحمل کمتر از یک ساعت است. یک نشانه فقط برای یک ساعت خوب است.
  • شما نام شریک صحیح (با پارامتر رشته Query partner ) را مشخص کرده اید. ارزش شناسه شریک منحصر به فرد شماست ، نه نام شریک زندگی شما که در مرکز تبلیغات هتل ظاهر می شود. اگر شناسه شریک زندگی خود را نمی شناسید ، با مدیر حساب فنی خود (TAM) تماس بگیرید.
Not found نقطه پایانی شما به احتمال زیاد ناقص است. بررسی کنید که درخواست GET کرده اید ، و URL درخواست معتبر است (مطابق با نحو API است که می خواهید به آن دسترسی پیدا کنید).
Invalid string value یک یا چند قسمت از نقطه پایانی حاوی نحو نامعتبر است. به عنوان مثال ، شما ممکن است بخشی از مسیر را اشتباه داشته باشید. بررسی کنید که در کل مسیر خود از زیرنویس های صحیح ، سرمایه گذاری و متن استفاده کرده اید.
Unsupported output format این خطا معمولاً هنگام استفاده از API گزارش ها رخ می دهد. شما باید "alt=csv" را در URL درخواست GET خود مشخص کنید. گزارش ها API از JSON پشتیبانی نمی کند.
AccessTokenRefreshError/Invalid grant هنگام اجرای برنامه خود ، این خطا ممکن است به دلیل موارد زیر ایجاد شود:
  • آدرس ایمیل حساب خدمات شما نادرست است. حساب ایمیل را در کنسول Google Cloud بررسی کنید و اطمینان حاصل کنید که مجاز به دسترسی به API شما است.
  • آدرس ایمیل دسترسی API ندارد. بررسی کنید که آیا آدرس ایمیل مجاز به دسترسی به داده های هتل های شما است که از طریق مرکز هتل به اشتراک گذاشته شده است یا خیر.
  • پرونده کلیدی صحیح برای حساب سرویس نیست. از کنسول Google Cloud برای بارگیری یک گواهی جدید .JSON استفاده کنید و مطمئن باشید که برنامه شما به سمت راست اشاره دارد.
HotelAdsAPIConnection object has no attribute credentials هنگام اجرای برنامه ، مسیر پرونده .JSON شما نادرست است.
Invalid scope هنگام اجرای برنامه ، دامنه API شما باید یکی از موارد زیر باشد:
  • "https://www.googleapis.com/auth/travelpartner"
  • "https://travelpartnerprices.googleapis.com"
  • "https://www.googleapis.com/auth/travel-partner-price-upload"
Forbidden شناسه حساب که استفاده می کنید یکی از مواردی است که شما مجوز دسترسی ندارید. اگر صاحب زیر حساب هستید ، ممکن است نتوانید به شناسه حساب والدین یا ریشه دسترسی پیدا کنید.