تفويض واجهة برمجة التطبيقات

توفر هذه الوثائق إرشادات خطوة بخطوة لإعداد OAuth2.0 في التطبيق عند الوصول إلى واجهات برمجة تطبيقات الفنادق مثل Travel Partner API وPrice واجهة برمجة تطبيقات الخلاصات. راجع استخدام OAuth 2.0 للوصول إلى Google APIs. لاعتماد تطبيقك.

إعداد OAuth 2.0

يتطلب OAuth 2.0 منك تعريف نفسك باستخدام حساب خدمة المرتبطة بحسابك على Google. يرسل حساب الخدمة ملفك الشخصي الخاص مقابل رمز الدخول إلى OAuth 2.0. يمكنك بعد ذلك استخدام هذا الرمز المميز في طلبات البيانات من واجهات برمجة التطبيقات للفنادق للحصول على بيانات للقراءة فقط، مثل الأسعار والفنادق بيانات تقارير التشخيص المتعلقة بخلاصة أسعار فندقك.

تكون رموز الدخول صالحة لمدة ساعة (3600 ثانية).

إذا نفذت ClientLogin سابقًا، فإن طريقة OAuth 2.0 تكون مشابهة، مع الاختلافات التالية:

  • يستخدم تطبيقك حساب خدمة Google للوصول إلى واجهة برمجة التطبيقات.
  • يمكنك ضبط رمز الدخول OAuth 2.0 في عنوان HTTP يتضمّن العنصر Authorization عندما لواجهات برمجة التطبيقات.

لإعداد حسابك لاستخدام OAuth 2.0 مع أي Hotel API، عليك تنفيذ ما يلي: الخطوات:

  1. إنشاء مشروع جديد في وحدة تحكُّم Google Cloud

  2. إنشاء حساب خدمة وبيانات الاعتماد الخاصة به

  3. منح حساب الخدمة إذن الوصول إلى بيانات فنادقك

كل خطوة من هذه الخطوات موضّحة في الأقسام التالية.

الخطوة 1: إنشاء مشروع جديد على Google Cloud Console

تُستخدم وحدة التحكم Google Cloud Console لإدارة بيانات حركة المرور وعرضها، والمصادقة، ومعلومات الفوترة لواجهات Google APIs التي تستخدمها استخدامها.

في Google Cloud Console، يشير المشروع إلى مجموعة من الإعدادات، وبيانات الاعتماد والبيانات الوصفية حول التطبيق الذي تعمل عليه تستخدم واجهات برمجة التطبيقات Google Developer API وموارد Google Cloud.

تُستخدم وحدة التحكم Google Cloud أيضًا لإنشاء بيانات اعتماد واجهة برمجة التطبيقات وتفعيل واجهات برمجة التطبيقات، وإدارة معلومات الفريق والفوترة المرتبطة بمشروعك.

لإنشاء مشروع جديد في Google Cloud Console، اتّبِع الخطوات التالية:

  1. سجِّل الدخول إلى حسابك على Gmail أو Google.

  2. افتح وحدة تحكُّم Google Cloud. إذا كان هذا هو مشروعك الأول، تعرض طريقة العرض الرئيسية إنشاء مشروع. الزر:

    fig1

  3. انقر على الزر إنشاء مشروع. تعرض وحدة التحكم في Google Cloud مربّع حوار مشروع جديد:

    fig2

    أدخِل اسمًا مناسبًا لمشروعك الجديد في اسم المشروع. حقل إدخال أسفل الحقل، تُنشئ وحدة التحكّم في Google Cloud مشروعًا. رقم تعريف لك، ما يضمن أن يكون المعرّف فريدًا في جميع المشاريع على سبيل المثال: إذا أدخلت "مشروعي الجديد"، ستعيِّن وحدة تحكّم Google Cloud معرّفًا مثل my-new-project-266022

  4. انقر على الزرّ إنشاء لإنشاء مشروعك الجديد.

  5. استخدم قائمة التنقل لتحديد واجهات برمجة التطبيقات الخدمات > لوحة البيانات.

    fig3

    توضح الصورة التالية قائمة التنقل في أعلى يمين وحدة تحكم Google Cloud. يؤدي ذلك إلى عرض طريقة العرض لوحة البيانات المشروع:

    fig4

لمزيد من المعلومات، يُرجى الرجوع إلى مقالة إنشاء المشاريع وإدارتها.

الخطوة 2: إنشاء حساب خدمة وإنشاء بيانات اعتماده

تُستخدم حسابات الخدمة من خلال التفاعلات من خادم إلى خادم مثل تلك بين تطبيق ويب وبيانات فندقك.

لإنشاء حساب خدمة وإعداده:

  1. في الشاشة الرئيسية لوحدة تحكُّم Google API، انقر على بيانات الاعتماد في التنقل الأيمن. تعرض وحدة التحكّم في Google Cloud بيانات الاعتماد مشاهدة.

    تعرض طريقة عرض بيانات الاعتماد معرِّفات العملاء وبيانات الاعتماد الخاصة مشروعك. يستخدم تطبيقك معرِّف العميل عند طلب رمز الدخول إلى OAuth 2.0. لا تحتوي المشاريع الجديدة على أي عملاء أو بيانات اعتماد. حتى الآن.

  2. انقر على رابط بيانات الاعتماد في واجهات برمجة التطبيقات والخدمات.

  3. انقر على الزر إنشاء بيانات اعتماد، واختَر مفتاح حساب الخدمة. من عامل التصفية. ستظهر طريقة عرض إنشاء مفتاح حساب الخدمة.

  4. من فلتر حساب الخدمة، اختَر حساب خدمة جديد.

  5. أدخِل اسم حساب الخدمة ورقم تعريف حساب الخدمة.

    يمكن إدخال أي اسم تريده، ولكن يجب أن يكون رقم تعريف الحساب فريدًا. عبر جميع المشروعات. تُنشئ Google Cloud Console معرّفًا فريدًا للحساب بناءً على الاسم الذي أدخلته.

  6. اختَر JSON لنوع المفتاح. يجب استخدام تنسيق JSON.

  7. انقر على الزر إنشاء. تنشئ وحدة التحكم في Google Cloud زوج من المفاتيح العامة لمشروعك. يتم حفظ المفتاح الخاص على الإعداد التلقائي مكان يخزنه المتصفح التنزيلات. يجب تنزيل ملف بتنسيق .JSON.

    استخدام المفتاح الخاص في النصوص البرمجية أو التطبيقات الأخرى التي يمكنها الوصول إلى واجهة برمجة التطبيقات الخاصة بك.

    تعرض وحدة التحكّم في Google Cloud رسالة "تم إنشاء حساب الخدمة" الرسالة عندما ينتهي من إنشاء المفاتيح.

  8. انقر على الزر حسنًا، أعي ذلك. تُرجعك Google Cloud Console إلى عرض بيانات الاعتماد. لتأكيد تفاصيل حساب الخدمة للاطّلاع على حساب الخدمة المرتبط بمشروعك، انقر على إدارة. حسابات الخدمة في طريقة العرض هذه.

    يحتوي حساب الخدمة الآن على بيانات الاعتماد التالية المرتبطة به:

    • معرّف العميل: معرّف فريد يستخدمه تطبيقك عند طلب رمز مميز للوصول إلى OAuth 2.0.
    • عنوان البريد الإلكتروني: عنوان بريد إلكتروني تم إنشاؤه لحساب الخدمة، في النموذج "account_name@account_name.google.com.iam.gserviceaccount.com".
    • ملفات مرجعية للشهادة: رقم تعريف المفتاح الخاص الذي نزّلته.

لمزيد من المعلومات، راجِع استخدام OAuth 2.0 لتطبيقات الخادم إلى الخادم.

الخطوة 3: منح حساب الخدمة إذن الوصول إلى بياناتك في Hotel Center

الخطوة الأخيرة هي منح حساب الخدمة الجديد إمكانية الوصول إلى مركز إدارة معلومات الفنادق: ويتم تحديد حساب الخدمة من خلال عنوان البريد الإلكتروني الذي تم إنشاؤه قمت بإنشائه في الخطوة السابقة. أنت تمنح حق الوصول إلى هذا الحساب باستخدام إعدادات المشاركة في Hotel Center.

إذا لم يكن لديك إذن الوصول المناسب لإضافة مستخدمين إلى الحساب، تواصَل مع فريق "الفنادق على Google" باستخدام نموذج التواصل معنا وطلب إعداد ملكية لـ لحسابك. يمكنك طلب إرسال رسالة إلكترونية واحدة أو أكثر إلى أحد المالكين. لمزيد من المعلومات عن الوصول إلى Hotel Center، يُرجى الرجوع إلى ربط Hotel Center و"إعلانات Google".

لمنح حساب خدمة إذن الوصول إلى بياناتك في "مركز إدارة معلومات الفنادق":

  1. في نافذة متصفِّح جديدة، افتح Hotel Center. fig7

  2. على بانر Hotel Center من Google، انقر على رمز إضافة مستخدم لفتح مربع حوار المشاركة.

    fig8

  3. في الحقل إضافة المزيد من الأشخاص، أدخِل عنوان البريد الإلكتروني للخدمة. حسابك الذي تريد إضافته إلى مركز إدارة معلومات الفنادق.

  4. أبقِ خيار إشعار الأشخاص محدّدًا.

  5. انقر على إدارة من الفلتر.

  6. انقر على الزر دعوة.

  7. بعد إضافة مستخدمين إلى Hotel Center، من المفترض أن يتم تفعيل حساب الخدمة للوصول إلى واجهة برمجة التطبيقات في غضون 24 ساعة تقريبًا.

بعد أن تُعلمك Google بأنّه تم تفعيل إمكانية الوصول إلى واجهة برمجة التطبيقات لحساب الخدمة، يمكنك بدء الوصول إلى واجهة برمجة التطبيقات باستخدام OAuth 2.0.

كيفية استخدام OAuth 2.0

للوصول إلى واجهة برمجة التطبيقات، يجب أن يعرّف التطبيق نفسه لدى Google من خلال عنوان البريد الإلكتروني والمفتاح الخاص اللذين تم إنشاؤهما لحساب الخدمة. من Google تتبادل آلية المصادقة هذا المفتاح برمز دخول OAuth 2.0 الذي التي تمرِّرها في عنوان Authorization ضمن طلبات البيانات من واجهة برمجة التطبيقات لتطبيقك.

يُرجى الاطِّلاع على مقالة الاستعداد لإجراء طلب بيانات مفوَّض من واجهة برمجة التطبيقات.

المستويات

في ما يلي سمة SCOPES الخاصة بواجهة برمجة تطبيقات الفنادق:

واجهة برمجة التطبيقات مع "شريك السفر": "https://www.googleapis.com/auth/travelpartner"

واجهة برمجة تطبيقات أسعار شركاء السفر: "https://travelpartnerprices.googleapis.com"

واجهة برمجة تطبيقات خلاصات الأسعار: "https://www.googleapis.com/auth/travel-partner-price-upload"

يجب تحديد حساب الخدمة عند إنشاء بيانات الاعتماد. ارجع إلى أنشئ حساب خدمة وأنشئ بيانات الاعتماد الخاصة به.

وعند تطوير تطبيقك، احرص على اتباع أفضل الممارسات مصادقة تطبيقك باستخدام مفاتيح واجهة برمجة التطبيقات. مزيد من المعلومات

مثال

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)

واجهة برمجة تطبيقات شريك السفر

تسمح واجهة برمجة التطبيقات "شريك السفر" لشركاء الإقامة باسترداد بيانات "مركز إدارة معلومات الفنادق" المعلومات وتغيير بيانات Hotel Center لإدارة الحسابات الكبيرة أو المعقدة.

اتَّبع تعليمات إعداد الإصدار 2.0 من OAUTH للحصول على تفويض من أجل واجهة برمجة التطبيقات مع "شريك السفر".

عند إنشاء مشروع جديد لواجهة برمجة التطبيقات Travel Partners API، عليك تفعيل إذن الوصول إلى مشروعك الجديد على Google Cloud Console.

اتّبِع الخطوات لتفعيل الوصول إلى واجهة برمجة التطبيقات Travel Partners:

  1. انتقل إلى طريقة عرض لوحة البيانات لمشروعك.

  2. انقر على تفعيل واجهات برمجة التطبيقات والخدمات. يؤدي ذلك إلى عرض رسالة ترحيب واجهة برمجة التطبيقات .

  3. في حقل البحث، ابدأ كتابة "Travel Partner API"، ثم وحدة التحكّم تعرض قائمة بواجهات برمجة التطبيقات التي تطابق ما تكتبه.

  4. انقر على واجهة برمجة التطبيقات المطابقة في الجدول. تعرض وحدة التحكّم في Google Cloud وصف حول واجهة برمجة التطبيقات هذه.

  5. انقر على الزر تفعيل واجهة برمجة التطبيقات لتفعيل واجهة برمجة التطبيقات هذه لمشروعك.

لمزيد من المعلومات، يُرجى الاطّلاع على تفعيل الخدمات وإيقافها.

تم تفعيل واجهة برمجة التطبيقات Travel Partner API الآن لمشروعك الجديد على حسابك على Google.

نطاق واجهة برمجة التطبيقات مع "شريك السفر" هو: "https://www.googleapis.com/auth/travelpartner"

نقطة نهاية واجهة برمجة التطبيقات مع "شريك السفر" هي: "https://travelpartner.googleapis.com/v3/accounts/<account_id>/<path>"

واجهة برمجة تطبيقات أسعار شركاء السفر

تتيح واجهة برمجة التطبيقات لعروض أسعار شركاء السفر لشركاء الإقامة إرسال أسعار العقارات إلى Google. ويُشار إليها أيضًا باسم أسعار مدة الإقامة (LoS).

اتَّبع تعليمات إعداد الإصدار 2.0 من OAUTH للحصول على تفويض من أجل واجهة برمجة تطبيقات أسعار شركاء السفر.

عند إنشاء مشروع جديد لواجهة برمجة التطبيقات Travel PartnersPrices API، عليك إجراء ما يلي: أن تتيح الوصول إلى مشروعك الجديد على Google Cloud Console والذي يشبه التعليمات المقدمة في واجهة برمجة التطبيقات مع "شريك السفر".

راجِع الخطوات المقدّمة في واجهة برمجة التطبيقات مع "شريك السفر" واستبدِلها جميع حالات "واجهة برمجة تطبيقات شريك السفر" من خلال "واجهة برمجة التطبيقات لأسعار شركاء السفر" للتفعيل لمشروعك.

في ما يلي نطاق واجهة برمجة التطبيقات لأسعار شركاء السفر: "https://travelpartnerprices.googleapis.com"

مسار تحميل واجهة برمجة التطبيقات لأسعار شركاء السفر هو: "/travel/lodging/uploads/accounts/<account_id>/property_data"

واجهة برمجة تطبيقات خلاصات الأسعار

تتيح واجهة برمجة تطبيقات خلاصات السعر لشركاء أماكن الإقامة توفير بيانات أسعار مخصّصة لكل فندق. يمكن لشركاء الإقامة في Google استخدام OAuth2.0 للمصادقة التفويض عند تحميل الأسعار إلى Google. اتّباع الإصدار 2.0 من OAUTH تعليمات الإعداد للحصول على تفويض لواجهة برمجة تطبيقات خلاصات الأسعار.

نقاط يجب أخذها في الاعتبار

لاحِظ الاختلافات المهمة في تعليمات التفويض الخاصة بخلاصات الأسعار. واجهة برمجة التطبيقات.

  1. على الشركاء إنشاء مشروع OAuth2.0 جديد لخلاصات الأسعار. في Google Cloud Console باتّباع التعليمات نفسها الواردة في إعداد OAuth 2.0.

  2. ليس مطلوبًا تفعيل واجهة برمجة تطبيقات خلاصات الأسعار في Google Cloud Console تجاهله. تحتاج فقط إلى حساب خدمة واحد ثم استخدم نفس حساب الخدمة لمنح مشروع "خلاصات الأسعار" الإذن بالوصول إلى فندقك مركز البيانات. اتّبِع الخطوات المتبقية المذكورة في إعداد OAuth2.0 من أجل إكمال عملية إعداد واجهة برمجة التطبيقات

الحصول على رمز الدخول OAuth2.0 لخلاصات الأسعار

الخطوة التالية هي الحصول على رمز دخول OAuth2.0 مع تحميل سعر الإقامة. النطاق باستخدام ملف مفتاح حساب الخدمة. يمكنك السماح بالطلبات إلى مشروع خلاصات السعر باتّباع التعليمات الواردة في الاستعداد لإجراء طلب مفوَّض لواجهة برمجة التطبيقات ثم استخرِج رمز الدخول من بيانات الاعتماد التي تم الحصول عليها واضبطه عنوان 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 لواجهة برمجة تطبيقات خلاصات الأسعار

يمكنك اختبار إعداد 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. هل شاركت حسابك على Hotel Ads Center مع حساب الخدمة من خلال النقر على زر مشاركة هذا الحساب؟
  6. هل أرسلت عنوان البريد الإلكتروني لحساب الخدمة ورقم تعريف الشريك إلى أو مدير حسابك الفني (TAM)؟
  7. هل تجتاز طلبات البيانات من واجهة برمجة التطبيقات رمزًا مميزًا تم الحصول عليه مؤخرًا في هل تريد الحصول على عنوان واحد (Authorization
  8. هل مرّ أكثر من ساعة على رمزك المميّز؟

يسرد الجدول التالي بعض الأخطاء الشائعة والحلول الممكنة:

خطأ الوصف
Invalid credentials قد يعني ذلك عدة أشياء. إذا ظهر لك هذا الخطأ، تحقق مما يلي:
  • حدّدت رأس Authorization يتضمّن رمزًا مميّزًا حاملاً صالحًا.
  • عمر الرمز المميز للحامل أقل من ساعة. الرمز المميز جيد فقط لمدة ساعة واحدة.
  • لقد حدَّدت اسم الشريك الصحيح (باستخدام مَعلمة سلسلة طلب البحث partner ). القيمة هي شريكك الفريد المعرّف وليس اسم الشريك الذي يظهر في "مركز إعلانات الفنادق". إذا لم تحدد معرفة رقم تعريف الشريك، تواصَل مع المدير التقني للحسابات (TAM).
Not found من المرجح أن تكون نقطة النهاية غير صحيحة. يُرجى التأكّد من أنّك ترسل طلب GET، وأن عنوان URL للطلب صالح (يتوافق مع إلى بنية واجهة برمجة التطبيقات التي تحاول الوصول إليها).
Invalid string value يحتوي جزء واحد أو أكثر من نقطة النهاية على بنية غير صالحة. على سبيل المثال: فربما ارتكبت خطأً إملائيًا في جزء من المسار. تأكد من استخدام الطريقة الصحيحة والشرطات السفلية والأحرف الكبيرة والصياغة في مسارك بالكامل.
Unsupported output format غالبًا ما يحدث هذا الخطأ عند استخدام واجهة برمجة التطبيقات لإعداد التقارير. يجب تحديد "alt=csv" في عنوان URL الخاص بـ GET طلبك. لا تتوافق واجهة برمجة التطبيقات لإعداد التقارير مع تنسيق JSON.
AccessTokenRefreshError/Invalid grant عند تشغيل تطبيقك، قد يحدث هذا الخطأ بسبب التالي:
  • عنوان البريد الإلكتروني لحساب الخدمة غير صحيح. يُرجى التحقّق من البريد الإلكتروني. في تقويم Cloud Console والتأكد من أنّه تم تفويضها للوصول إلى واجهة برمجة التطبيقات لديك.
  • لا يمكن لعنوان البريد الإلكتروني الوصول إلى واجهة برمجة التطبيقات. تحقق مما إذا كان البريد الإلكتروني العنوان المفوّض للوصول إلى بيانات فنادقك التي تتم مشاركتها من خلال مركز إدارة معلومات الفنادق.
  • ملف المفاتيح ليس الملف الصحيح لحساب الخدمة. استخدام وحدة تحكُّم Google Cloud لتنزيل .JSON الشهادة والتأكّد من أنّ تطبيقك يوجِّه المستخدمين إلى الشهادة الصحيحة.
HotelAdsAPIConnection object has no attribute credentials عند تشغيل التطبيق، يكون المسار إلى ملف .JSON هو غير صحيح.
Invalid scope عند تشغيل التطبيق، يجب أن يكون نطاق واجهة برمجة التطبيقات أحد النطاقات التالية:
  • &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 رقم تعريف الحساب الذي تستخدمه هو رقم تعريف غير مصرّح لك به. الوصول إليه. إذا كنت تملك حسابًا فرعيًا، قد لا تتمكّن من الوصول إلى رقم تعريف الحساب الرئيسي أو الحساب الجذر.