Java Booking API クライアント
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
リアルタイム更新の実装を開始するには、Java リアルタイム更新 API クライアントをダウンロードしてください。
前提条件:
サービス アカウントを作成して、秘密鍵をダウンロードします。
始める:
- Java クライアント ライブラリをダウンロードし、ファイルを解凍して「mapsbooking」パッケージを取得します。
-
IDE で Java プロジェクトを作成し、このリポジトリからサンプルコード InventoryUpdate.java と BookingNotification.java をダウンロードします。
git clone https://maps-booking.googlesource.com/java-maps-booking-api-example
これらのファイルを src ディレクトリの Java プロジェクトにインポートします。
- 秘密鍵(JSON ファイル)のコピーを src ディレクトリに作成します。
- Java クライアント ライブラリをプロジェクトの依存関係に追加します(mapsbooking ディレクトリと libs-sources ディレクトリに JAR ファイルを含めます)。
- 両方の Java ファイルで、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 を使用して replace availaiblity 呼び出しを実行しても、エラー メッセージはスローされません。これは、RTU を介した空きスロットの変更が順序外実行をサポートしているため、merchantId または serviceId に関連付けられていないためです。ただし、merchantId または serviceId が無効であるため、リクエスト内のスロットは本番環境で配信されません。予約枠をサービス提供可能にするには、不足している販売者またはサービスを RTU またはフィード経由で追加してください。
- すべての更新関数で、更新するフィールドを指定するには、パラメータ「updateMask」を FieldMask 形式にする必要があります。API は、マスクで指定されたフィールドの値のみを変更し、他のフィールドは変更しない必要があります。間違った updateMask 文字列を渡すと、更新は適用されません。更新時にフィールド マスクが存在しない場合、オペレーションはすべてのフィールドに適用されます(すべてのフィールドのフィールド マスクが指定されている場合と同様に)。したがって、すべてのフィールドを更新する場合は、updateMask を空に設定します。
- 値がゼロのフィールドはレスポンスに表示されません。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-07-26 UTC。
[null,null,["最終更新日 2025-07-26 UTC。"],[[["\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."]]