คุณสามารถดาวน์โหลดไคลเอ็นต์ Java Realtime Update API เพื่อช่วยในการเริ่มต้นใช้งานการอัปเดตแบบเรียลไทม์
วิชาบังคับก่อน:
สร้างบัญชีบริการแล้ว ดาวน์โหลดคีย์ส่วนตัว
เริ่มต้น:
- ดาวน์โหลดไลบรารีของไคลเอ็นต์ 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 ลงในทรัพยากร Dependency ของโปรเจ็กต์ (รวมไฟล์ jar ไว้ในไดเรกทอรี mapsbooking และ libs-sources)
- ในไฟล์ Java ทั้ง 2 ไฟล์ ให้ทําตาม TODO เพื่อติดตั้งใช้งานให้เสร็จสมบูรณ์
ดูรายละเอียดเพิ่มเติมเกี่ยวกับ REST API ได้ที่นี่
การแก้ปัญหา:
-
เมื่อพยายามสร้างผู้ขาย/บริการใหม่โดยใช้ merchantId หรือ serviceId ที่มีอยู่ คุณจะได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้
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 ที่ไม่ถูกต้อง การเรียกใช้จะไม่แสดงข้อความแสดงข้อผิดพลาด เนื่องจากการเปลี่ยนแปลงช่วงเวลาที่พร้อมให้บริการผ่าน RTU รองรับการดำเนินการที่ไม่เป็นไปตามลําดับ และจึงไม่เชื่อมโยงกับ merchantId หรือ serviceId อย่างไรก็ตาม ช่องในคำขอจะไม่แสดงในเวอร์ชันที่ใช้งานจริงเนื่องจาก merchantId หรือ serviceId ไม่ถูกต้อง หากต้องการให้ช่องแสดงผลได้ โปรดเพิ่มผู้ขายหรือบริการที่ขาดหายไปผ่าน RTU หรือฟีด
- ในฟังก์ชันการอัปเดตทั้งหมด พารามิเตอร์ "updateMask" ต้องอยู่ในรูปแบบ FieldMask เพื่อระบุฟิลด์ที่จะอัปเดต API ต้องเปลี่ยนเฉพาะค่าของช่องตามที่ระบุไว้ในมาสก์ และไม่ต้องเปลี่ยนแปลงค่าอื่นๆ หากคุณส่งสตริง updateMask ที่ไม่ถูกต้อง การอัปเดตจะไม่มีผล หากไม่มีมาสก์ฟิลด์ในการอัปเดต การดำเนินการจะมีผลกับทุกช่อง (เหมือนกับมีการระบุมาสก์ฟิลด์ของทุกช่อง) ดังนั้นหากต้องการอัปเดตทุกช่อง ให้ตั้งค่า updateMask เป็นค่าว่าง
- ช่องที่มีค่าเป็น 0 จะไม่แสดงในการตอบกลับ