背景
自動リンクされたパス機能を使用すると、Google ウォレットに既存のパスを持っているユーザーに、追加のパスをお送りいただけます。ユーザーがプライマリ(メイン)パスを保存する際に、パスをプライマリパスに事前にリンクすることもできます。自動リンクされたパスは、プライマリ パスとグループ化され、プライマリ パスの上に、新しいパスがリンクされたことをユーザーに知らせるコールアウトが表示されます。次のパスタイプは、プライマリ パスまたはリンク済みパスとしてサポートされています。
- イベント チケット
- 搭乗券
- 交通機関のパス
- 特典
- ギフトカード
- ポイントカード パス
- 汎用パス
新しいパスが追加されたことを示すコールアウトがあるメインパス | メインのパスにリンクされた新しいパス |
ユースケース
パスを既存のパスにリンクするユースケースはさまざまです。いくつかの例を以下に示します。
- 既存のポイントカードに特典をリンクします。
- 食事クーポンを搭乗券またはイベント チケットにリンクする。
- 駐車券をイベント チケットにリンクする。
自動リンクされたパスを使用する際の考慮事項
- プライマリ オブジェクトとリンクされたオブジェクトは、同じ issuerId を使用する必要があります。
- リンクされたオブジェクトは、プライマリ オブジェクトごとに 50 個までです。
- リンクされたパスの自動プッシュは保証されず、ベスト エフォートとして扱われます。ユーザーは自動リンクされたパスの受信を無効にできます。ユースケースが重要で、ユーザーがリンクされたパスを受け取る必要がある場合は、別のチャネルで連絡して、ユーザーがパスを追加できるようにすることをおすすめします。
- Google ウォレットの利用規約の更新には、自動リンクされたパスの使用に関するガイダンスが含まれており、これに準拠する必要があります。
統合の手順
プライマリ オブジェクトをすでに作成している場合は、ステップ 1 をスキップできます。
- 必要なパラメータを使用して、リストされている任意のパスタイプのオブジェクトを作成します。これはプライマリ オブジェクトです。
- リストされている任意のパスタイプの別のオブジェクトを作成します。これはリンクされたオブジェクトになります。
- プライマリ オブジェクトの保存前または保存後に、linkedObjectIds パラメータのリンクされたオブジェクトの ID でプライマリ オブジェクトを更新します。
プライマリ パスで linkObjectIds を設定するには、最小限のペイロードが必要です。必須のパラメータは次の 3 つです。
- ISSUERID.PRIMARY_OBJECT_ID
- ISSUERID.PRIMARY_CLASS_ID
- ISSUERID.LINKED_OBJECT_ID
リンク済みオブジェクトをパス オブジェクトに追加する JSON リクエストの例
… { "id": "ISSUERID.PASS_OBJECTID", "classId": "ISSUERID.PASS_CLASSID", "barcode": { "type": "qrCode", "value": "QR code" }, "linkedObjectIds": {"ISSUERID.LINKED_PASS_OBJECTID"} } …
オブジェクトをパス オブジェクトにリンクした後の JSON レスポンスの例
… "state": "active", "linkedObjectIds": { "ISSUERID.LINKED_PASS_OBJECTID" } …
予想される動作
正常なレスポンスが届くと、更新したパスが設定されているデバイスにリンクされたパスが届きます。このリンクされたパスは、メインパスとともにグループ化されます。右にスワイプすると、リンクされたパスが表示されます。
例外処理
API を誤って使用すると、次のようなエラーが発生する可能性があります。
メッセージ | 理由 |
---|---|
プライマリ オブジェクトとリンクされたオブジェクトが同じ発行元 ID を共有していない。 | リンクされたオブジェクトを別の発行元のオブジェクトに関連付けることはできません。 |
プライマリ オブジェクトとリンクされたオブジェクトが同じオブジェクトを参照している。 | linkedObject と同じオブジェクトをアタッチすることはできません。 |
リンクされたオブジェクトが存在しません。 | リンクされたオブジェクトは、すでに Wallet API に挿入されているはずです。 |
リンクされたオブジェクトには、すでに別のリンクされたオブジェクトがあります。ネストされたリンク済みオブジェクトを追加することはできません。 | リンクされたオブジェクトに別のリンクされたオブジェクトを設定することはできません。 |
オブジェクトはすでに別のオブジェクトにリンクされています。ネストされたリンクされたオブジェクトは追加できません。 | プライマリ オブジェクト自体をリンク オブジェクトにすることはできません。 |
リンクされたオブジェクトを追加できません。上限を超えています。 | プライマリ パスのリンク済みパスの上限(50 個)に達しています。 |