מלאי שטחי הפרסום במערכת משתנה במהלך היום בגלל הזמנות חדשות, ביטולים ושינויים בלוחות הזמנים של המוכרים. ה-API של העדכון בזמן אמת הוא מנגנון שמאפשר לעדכן את Google לגבי השינויים האלה בזמינות המלאי. אפשר גם להשתמש בעדכוני API בזמן אמת כדי להודיע ל-Google על שינויים שמתבצעים בהזמנות קיימות.
עדכונים ופידים בזמן אמת של API
עדכוני API בזמן אמת משמשים כדי להודיע ל-Google על שינויים מצטברים בזמינות המלאי ובהזמנות, בזמן אמת. בנוסף לעדכוני API בזמן אמת, כדאי לשלוח פידים מלאים של נתוני זמינות מדי יום כדי לוודא של-Google יש את המידע העדכני והמדויק ביותר לגבי הזמינות במערכת שלכם. פידים מלאים משמשים כתמונת מצב של סטטוס הזמינות הנוכחי של מלאי שטחי הפרסום במערכת.
אפשר להשתמש בעדכוני API כדי לעדכן כל מידע שמסופק על ידי פידים, כמו מידע על מוכרים ושירותים, אבל בדרך כלל משתמשים בהם רק כדי לעדכן את פרטי הזמינות.
ממשקי ה-API הנדרשים לעדכון בזמן אמת
ממשקי API לעדכון בזמן אמת (RTU) | ||
---|---|---|
BookingNotification | חובה | שולחים הודעות BookingNotification RTU בכל פעם שמתבצע שינוי בהזמנה (למשל שינויים או ביטולים). |
זמינות החלפת RTU | חובה מותנית[1] | כדי לשלוח עדכונים לגבי זמינות המלאי, שולחים RTU של החלפה באצווה או של החלפה יחידה. יכול להיות שיחלפו כמה דקות עד שהשינויים יופצו ויופיעו במערכת. |
RTU של מוכר | אופציונלי | שולחים בקשות RTU של מוכרים אם רוצים לבצע שינויים בפרטי המוכרים בזמן אמת. יכול להיות שיעברו כמה שעות עד שהשינויים ייכנסו לתוקף. |
Service RTU | אופציונלי | שולחים RTU של שירות אם רוצים לבצע שינויים במידע על השירות בזמן אמת. תרחיש לדוגמה: אם מחירי השירותים משתנים באופן משמעותי במהלך היום, מומלץ להטמיע שירותי RTU כדי למנוע כשל בהזמנות בגלל חוסר התאמה במחיר. יכול להיות שיעברו כמה שעות עד שהשינויים ייכנסו לתוקף. |
Availability Replace API RTU
אפשר להשתמש ב-Availability Replace API כדי לספק עדכוני זמינות בתרחישי השימוש הבאים:
- משתמש מבצע הזמנה במערכת, כך שחלון הזמינות לא זמין יותר.
- מוכר משנה את הזמינות שלו במערכת.
- משתמש מבצע הזמנה דרך Google, כך שחלון הזמינות כבר לא זמין.
- הזמנה שבוצעה דרך Google מבוטלת אצלכם, למשל על ידי המוכר ישירות. צריך לעדכן את ההזמנה ואת הזמינות, כי המועד המקורי זמין שוב.
- קריאה ל-
BatchAvailabilityLookup
של שרת ההזמנות מחזירה מלאי שטחי פרסום שלא תואם למלאי בפועל.
מידע נוסף זמין במקורות הבאים:
- מדריך: איך לבנות מבנה של עדכונים בזמן אמת
- דוגמה ללקוח Java לקבלת עדכונים בזמן אמת באמצעות קריאות RESTful
- דף העזרה של API לעדכון מלאי
Booking Notification API RTU
ממשקי ה-API של התראות על הזמנות מעדכנים את Google לגבי עדכונים בהזמנות קיימות. כששולחים עדכון לגבי ביטולים, צריך לשלוח רק את המידע החיוני בבקשה באמצעות פרמטר השאילתה 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 כדי ליצור חשבון שירות. שומרים את המפתח הפרטי בפורמט JSON במקום בטוח. כשיוצרים את החשבון, אפשר להגדיר את התפקיד בתור 'בעלים'.
אימות של ממשקי ה-API של מפות Google להזמנות
אחרי שיוצרים חשבון שירות, מבצעים אימות של ממשקי ה-API הבאים:
- Google Maps Booking API
- Google Maps Booking API (Dev)
מדריך מפורט לביצוע הפעולה הזו זמין במאמר אימות באמצעות Maps Booking API.
שימוש בקריאות RESTful או הורדה של ספריית הלקוח
מומלץ לבצע קריאות RESTful ישירות ל-Maps Booking API עם עומסי נתונים (payloads) של JSON. מידע נוסף זמין במסמכי העזרה של ה-API ל-REST.
אפשר גם להשתמש בספריות לקוח כדי להתחבר ל-API.
שפה | קישור להורדה |
---|---|
Java | ספריית לקוח Java. למידע נוסף, ראו הוראות ללקוח Java. |
יש ספריות תמיכה נוספות שזמינות להורדה, שמטפלות בהרשאה ובמאפיינים אחרים של קריאות ל-Google APIs. אם צריך, אפשר לעיין בדוגמאות האלה.
אחזור מסמך הגילוי
בספריות לקוח מסוימות, כמו Ruby, צריך לאחזר את מסמך הגילוי של ה-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 יש מכסה של 1,500 בקשות כל 60 שניות, או 25 בקשות לשנייה בממוצע. אם חורגים מהמכסה (מצב שיכול לקרות אם לא הוספתם את מספר הפרויקט הנכון ב-Google Cloud בפורטל השותפים), Google תחזיר את הודעת השגיאה הבאה:
{ "error": { "code": 429, "message": "Insufficient tokens for quota ...", "status": "RESOURCE_EXHAUSTED", "details": [...] } }
כדי לטפל בבעיה הזו, צריך לנסות שוב לבצע את הקריאה במרווחי זמן גדולים יותר באופן מעריכי עד שהיא תצליח. אם אתם מגיעים למכסה באופן קבוע עם ReplaceServiceAvailability
, כדאי לעבור ל-BatchReplaceServiceAvailabily
כדי לצמצם את מספר הקריאות ל-API. בעזרת ה-method הזה אפשר לעדכן כמה שירותים בקריאה אחת ל-API.
נקודות קצה (endpoints) בסביבת Sandbox ובסביבה ייצור
אפשר לבצע קריאות לסביבת ה-sandbox ולסביבת הייצור דרך ה-API. חשוב לוודא שהפעלתם את שני ממשקי ה-API בפרויקט שלכם ב-Google Cloud. שני ממשקי ה-API האלה משתמשים באותו היקף, אבל יש להם נקודות קצה שונות.
נקודת קצה בסביבת הייצור: https://mapsbooking.googleapis.com/
נקודת קצה בארגז החול: https://partnerdev-mapsbooking.googleapis.com/
דוגמה ב-Java להחלפת נקודות קצה:
// 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()