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 で在庫状況の置換呼び出しを行う場合、その呼び出しでエラー メッセージはスローされません。これは、RTU を介した空き状況スロットの変更で順不同の実行がサポートされているため、merchantId や serviceId に関連付けられていないためです。ただし、merchantId または serviceId が無効なため、本番環境ではリクエストのスロットが提供されません。スロットを配信可能にするには、RTU またはフィードを使用して、不足している販売者またはサービスを追加してください。
- すべての更新関数では、更新するフィールドを指定するためにパラメータ「updateMask」を FieldMask 形式にする必要があります。API では、マスクで指定されたフィールドの値のみを変更し、その他のフィールドの値はそのままにしておく必要があります。間違った updateMask 文字列を渡した場合、アップデートは有効になりません。更新時にフィールド マスクが存在しない場合、オペレーションはすべてのフィールドに適用されます(すべてのフィールドのフィールド マスクが指定されている場合と同様です)。すべてのフィールドを更新する場合は、updateMask を空に設定します。
- 値が 0 のフィールドはレスポンスに表示されません。