مرحله 5: به روز رسانی های API در زمان واقعی را پیاده سازی کنید

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

به‌روزرسانی‌ها و فیدهای بلادرنگ API

به‌روزرسانی‌های هم‌زمان API برای اطلاع Google از تغییرات تدریجی موجودی موجودی و رزرو به‌صورت هم‌زمان استفاده می‌شود. علاوه بر به‌روزرسانی‌های هم‌زمان API، فیدهای دسترسی کامل را روزانه ارسال کنید تا مطمئن شوید که Google دقیق‌ترین و جدیدترین دانش در مورد در دسترس بودن را همانطور که در سیستم شما وجود دارد، دارد. فیدهای کامل به عنوان تصویری از وضعیت فعلی موجودی موجود در سیستم شما عمل می کنند.

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

APIهای به روز رسانی بلادرنگ مورد نیاز

APIهای به روز رسانی بیدرنگ (RTU).
اطلاعیه رزرو اجباری هر زمان که تغییری در رزرو وجود داشت (مثلاً تغییرات یا لغو) RTU های BookingNotification را ارسال کنید.
در دسترس بودن جایگزین RTU مشروط مورد نیاز است[1] برای ارسال به‌روزرسانی‌های موجودی موجودی، RTU‌ های جایگزین دسته‌ای یا تک جایگزین را ارسال کنید. انتشار و بازتاب تغییرات ممکن است چند دقیقه طول بکشد.
Merchant RTU اختیاری اگر می‌خواهید تغییراتی در اطلاعات تاجر در زمان واقعی ایجاد کنید، RTUهای تجاری را ارسال کنید. انتشار و بازتاب تغییرات ممکن است چندین ساعت طول بکشد.
سرویس RTU اختیاری اگر می‌خواهید تغییراتی در اطلاعات سرویس‌ها در زمان واقعی ایجاد کنید، خدمات RTU را ارسال کنید. یک مورد استفاده رایج این است که اگر قیمت خدمات در طول روز به شدت نوسان می کند، اجرای سرویس RTU برای جلوگیری از شکست سفارش ها به دلیل عدم تطابق قیمت توصیه می شود. انتشار و بازتاب تغییرات ممکن است چندین ساعت طول بکشد.

در دسترس بودن جایگزین API RTU

از Availability Replace API برای ارائه به‌روزرسانی‌های در دسترس بودن در موارد استفاده زیر استفاده کنید:

  • کاربر یک رزرو را در سیستم شما رزرو می کند، بنابراین اسلات در دسترس بودن دیگر در دسترس نیست.
  • یک تاجر در دسترس بودن خود را در سیستم شما تغییر می دهد.
  • کاربر یک رزرو را از طریق Google رزرو می کند، بنابراین جایگاه در دسترس بودن دیگر در دسترس نیست.
  • رزرو انجام شده از طریق Google از طرف شما لغو می شود، به عنوان مثال، مستقیماً توسط تاجر. باید رزرو و همچنین در دسترس بودن را به روز کنید، زیرا اسلات اصلی اکنون دوباره در دسترس است.
  • تماس سرور رزرو BatchAvailabilityLookup موجودی را برمی گرداند که با موجودی واقعی مطابقت ندارد.

برای اطلاعات بیشتر به منابع زیر مراجعه کنید:

API RTU اعلان رزرو

APIهای اعلان رزرو، به‌روزرسانی‌های رزروهای موجود را به Google اطلاع می‌دهند. وقتی به‌روزرسانی درباره لغو ارسال می‌کنید، فقط اطلاعات ضروری در درخواست را با پارامتر query updateMask ارسال کنید. در اینجا یک مثال است:

Request:
PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/<PARTNER_ID>/bookings/<BOOKING_ID>?updateMask=status

Body:
{"name":"partners/<PARTNER_ID>/bookings/<BOOKING_ID>", "status":"CANCELED"}

دسترسی به API

یک حساب کاربری ایجاد کنید

از تب Credentials در Google API Console برای ایجاد یک حساب سرویس استفاده کنید. کلید خصوصی را با فرمت JSON در مکانی امن ذخیره کنید. هنگامی که حساب کاربری را ایجاد می کنید، این گزینه را دارید که نقش را روی "مالک" تنظیم کنید.

API های رزرو Maps را تأیید اعتبار کنید

پس از ایجاد یک حساب سرویس، API های زیر را احراز هویت کنید:

  • Google Maps Booking API
  • Google Maps Booking API (Dev)

برای راهنمای گام به گام نحوه انجام این کار، به آموزش Authenticating with Maps Booking API مراجعه کنید.

از تماس‌های RESTful استفاده کنید یا کتابخانه مشتری را دانلود کنید

توصیه می‌کنیم با بارهای JSON مستقیماً با Maps Booking API تماس‌های RESTful برقرار کنید. برای اطلاعات بیشتر، به مستندات REST API مراجعه کنید.

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

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

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

سند Discovery را واکشی کنید

برای برخی از کتابخانه های سرویس گیرنده، مانند Ruby، لازم است سند Discovery برای API واکشی شود که روش ها و پارامترهای آن را توضیح می دهد.

برای واکشی سند Discovery از دستور زیر استفاده کنید:

curl -s -o 'mapsbooking_rest' 'https://mapsbooking.googleapis.com/$discovery/rest?version=v1alpha'

برای اطلاعات بیشتر در مورد دسترسی به API از Ruby، این پیوندها را دنبال کنید: Ruby API Client و Ruby Auth Library .

تماس های مجاز با API برقرار کنید

هنگامی که با API تماس می گیرید، به آماده سازی برای برقراری تماس مجاز API مراجعه کنید تا حساب سرویس خود را با کلید خصوصی خود و محدوده OAuth زیر مجاز کنید: https://www.googleapis.com/auth/mapsbooking .

سهمیه های API

به‌روزرسانی‌های API سهمیه 1500 درخواست در هر 60 ثانیه یا به طور متوسط ​​25 درخواست در ثانیه دارند. هنگامی که از سهمیه فراتر رود (که ممکن است زمانی رخ دهد که شماره پروژه Google Cloud صحیح را در پورتال شریک خود اضافه نکرده باشید)، Google با پیام خطای زیر پاسخ می‌دهد:

{
  "error": {
    "code": 429,
    "message": "Insufficient tokens for quota ...",
    "status": "RESOURCE_EXHAUSTED",
    "details": [...]
  }
}

برای انجام این کار، دوباره تماس را در فواصل زمانی بزرگتر تکرار کنید تا زمانی که موفق شود. اگر به طور منظم سهمیه را با ReplaceServiceAvailability تمام می کنید، برای کاهش تعداد تماس های API، به BatchReplaceServiceAvailabily بروید. این روش به شما امکان می دهد چندین سرویس را در یک تماس API به روز کنید.

Sandbox و نقاط پایانی تولید

از طریق API می توانید با محیط های sandbox و تولید تماس بگیرید. مطمئن شوید که هر دو API را در پروژه Google Cloud خود فعال کرده اید. هر دوی این APIها از یک محدوده استفاده می کنند، اما نقاط پایانی متفاوتی دارند.

نقطه پایان تولید: https://mapsbooking.googleapis.com/

نقطه پایانی Sandbox: https://partnerdev-mapsbooking.googleapis.com/

در زیر مثالی در جاوا از نحوه تغییر نقاط پایانی آورده شده است:

    // This block of code is for OAuth and is the same for prod and sandbox.
    GoogleCredential
      .fromStream(new FileInputStream(...))
      .createScoped(Collections.singleton("https://www.googleapis.com/auth/mapsbooking"))

    // This block of code sets the endpoint. This is what you'd change to connect to the sandbox.
    new GoogleMapsBookingAPI.Builder(...)
      .setApplicationName(...)
      .setRootUrl("https://partnerdev-mapsbooking.googleapis.com/") // you add this to change the endpoint to use partnerdev.
      .build()