برنامج Java Booking API client
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يمكنك تنزيل
عميل واجهة برمجة التطبيقات لتعديل البيانات في الوقت الفعلي باستخدام Java للمساعدة في بدء تنفيذ
التعديلات في الوقت الفعلي.
متطلب أساسي:
أنشئ حساب الخدمة، ثم نزِّل مفتاحك الخاص.
البدء:
- نزِّل
مكتبة برامج Java وفكِّ ضغط الملف للحصول على حزمة "mapsbooking"
.
-
أنشئ مشروعًا باستخدام Java في بيئة تطوير البرامج المتكاملة (IDE)، ثم نزِّل نموذجَي الرموز البرمجية
InventoryUpdate.java و
BookingNotification.java من هذا المستودع:
git clone https://maps-booking.googlesource.com/java-maps-booking-api-example
واستورِدها إلى مشروع java ضمن الدليل src.
- أنشئ نسخة من مفتاحك الخاص (ملف JSON) في الدليل src.
- أضِف مكتبة Java Client Library إلى التبعيات في مشروعك
(تضمين ملفات jar ضمن دليلَي mapsbooking وlibs-sources)
- في كلٍّ من ملفّي java، اتّبِع المهام التي يجب إكمالها لإكمال عمليات التنفيذ.
يمكنك الاطّلاع على مزيد من التفاصيل حول واجهة برمجة التطبيقات REST API
هنا.
تحرّي الخلل وإصلاحه:
-
عند محاولة إنشاء تاجر/خدمة جديدَين باستخدام معرّف تاجر أو
معرّف خدمة حاليَين، ستظهر لك رسالة الخطأ التالية:
409 Conflict
{
“code” : 409,
“errors” :
[{
“domain” : “global”,
“message” : “Requested entity already exists”,
“reason” : “alreadyExists”,
“debugInfo” : “detail: "[ORIGINAL ERROR] generic::already_exists: ...”\n"
}],
“message” : “Requested entity already exists”,
“status” : “ALREADY_EXISTS”
}
- عند إجراء طلب استبدال معلومات التوفّر باستخدام معرّف تاجر أو
معرّف خدمة غير صالحَين، لن تظهر رسالة خطأ. ويعود السبب في ذلك إلى أنّه
يمكن تنفيذ التغييرات على خانات مدى التوفّر من خلال طلبات البحث عن معلومات المنتجات بدون ترتيب معيّن، وبالتالي
لا تكون مرتبطة بمعرّف التاجر أو معرّف الخدمة. ومع ذلك، لن يتم عرض الفتحات
في الطلب في قناة الإصدار العلني بسبب عدم صلاحية
merchantId أو serviceId. لعرض الشرائح، يُرجى إضافة
التاجر أو الخدمة غير المتوفّرة من خلال طلبات البحث عن المنتجات أو الخلاصات.
- في جميع دوال التعديل، يجب أن تكون المَعلمة updateMask بتنسيق
FieldMask لتحديد الحقول التي سيتم تعديلها. يجب أن تغيِّر واجهة برمجة التطبيقات
قيم الحقول فقط على النحو المحدّد في القناع
وتترك القيم الأخرى بدون تغيير. في حال تم إدخال سلسلة updateMask غير صحيحة،
لن يتم تطبيق التعديل. إذا لم يكن هناك قناع حقل عند إجراء عملية تعديل،
يتم تطبيق العملية على جميع الحقول (كما لو تم تحديد قناع حقل لكل الحقول). إذا كنت تريد تعديل كل الحقول، ما عليك سوى ضبط
updateMask على القيمة فارغة.
- لا يتم عرض أي حقل له قيمة صفر في الاستجابة.
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2025-07-26 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-07-26 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eDownload the Java real-time update API client and sample code to get started with implementing real-time updates for your booking services.\u003c/p\u003e\n"],["\u003cp\u003eYou will need a service account with a downloaded private key to use the client.\u003c/p\u003e\n"],["\u003cp\u003eThe client library allows you to manage inventory and booking notifications, and more details on the REST API are available in the documentation.\u003c/p\u003e\n"],["\u003cp\u003eTroubleshooting information is provided for common issues such as entity conflicts, invalid IDs, and update mask usage.\u003c/p\u003e\n"],["\u003cp\u003eRemember that zero-valued fields are not displayed in responses from the API.\u003c/p\u003e\n"]]],["Download the Java real-time update API client and library. Create a Java project, import the sample code files, `InventoryUpdate.java` and `BookingNotification.java`, and copy your private key to the `src` directory. Add the Java Client Library to your project dependencies. Follow the TODOs in the Java files to complete implementation. Be aware of 409 errors with existing IDs. Replace availability calls won't throw errors with invalid IDs. Ensure the 'updateMask' parameter is in FieldMask format in update functions.\n"],null,["# Java Booking API client\n\nYou can download our\n[Java real time update API client](https://maps-booking.googlesource.com/java-maps-booking-api-example/) to help get started implementing\nthe real time updates.\n\nPrerequisite:\n-------------\n\nHave your service account created, download your private key.\n\nGet started:\n------------\n\n1. Download the [Java client library](https://dl.google.com/mapsbooking/apiclients/v1alpha/mapsbooking_java_public.zip) unzip the file to get the 'mapsbooking' package.\n2. Create a java project in your IDE, download the sample codes\n [InventoryUpdate.java](https://maps-booking.googlesource.com/java-maps-booking-api-example/+/master/InventoryUpdate.java) and\n [BookingNotification.java](https://maps-booking.googlesource.com/java-maps-booking-api-example/+/master/BookingNotification.java) from this repo:\n\n ```java\n git clone https://maps-booking.googlesource.com/java-maps-booking-api-example\n ```\n\n and import them into your java project under src directory.\n3. Make a copy of your private key (JSON file) to the src directory.\n4. Add the Java Client Library to the dependencies of your project (include jar files under mapsbooking and libs-sources directory).\n5. In both java files, follow the TODOs to complete your implementations\n\nMore detail about the REST API can be\n[found here](/maps-booking/reference/maps-booking-api/rest).\n\nTroubleshooting:\n----------------\n\n1. When trying to create a new merchant/service with an existing merchantId or\n serviceId, you will get the following error message:\n\n ```java\n 409 Conflict\n {\n \"code\" : 409,\n \"errors\" :\n [{\n \"domain\" : \"global\",\n \"message\" : \"Requested entity already exists\",\n \"reason\" : \"alreadyExists\",\n \"debugInfo\" : \"detail: \"[ORIGINAL ERROR] generic::already_exists: ...\"\\n\"\n }],\n \"message\" : \"Requested entity already exists\",\n \"status\" : \"ALREADY_EXISTS\"\n }\n ```\n2. When making a replace availaiblity call with an invalid merchantId or serviceId, the call will **not** throw an error message. This is because changes to availability slots via RTUs support out-of-order execution and thus is not associated with a merchantId or serviceId. However, the slots in the request will not be served in the production due to the invalid merchantId or serviceId. To make the slots servable, please add the missing merchant or service via RTUs or feeds.\n3. In all update functions, the parameter 'updateMask' must be in [FieldMask](/protocol-buffers/docs/reference/google.protobuf#fieldmask) format to specify the fields to update. The API is required to only change the values of the fields as specified in the mask and leave the others untouched. If you pass the wrong updateMask string, the update will not take effect. If a field mask is not present on update, the operation applies to all fields (as if a field mask of all fields has been specified). So if you want to update all fields, just set the updateMask empty.\n4. Any field that has a zero value is not shown in the response."]]