Recall API

Recall API を使用すると、ゲームは Google サーバーにリコール トークンを保存することにより、Google Play Games サービス(PGS)ユーザーとゲーム内アカウント間のリンクを管理できます。Recall API の使用例を次に示します。

  1. ユーザーがプレイするゲームで、デベロッパーがユーザーの進捗状況を追跡する ID システムを用意し、ユーザーがゲームにログインする際には PGS を他の認証方法と同時に使用します。この例では、ユーザーが PGS アカウント Laura にログインし、Racer94 というデベロッパーの ID システムを使ってゲーム内アカウントを作成します。ユーザーがゲームをプレイすると、デベロッパーのゲームサーバーが進行状況を同期します。

    ユーザーが PGS とゲーム内アカウントでログインしている

  2. これとは別に、デベロッパーはユーザーのゲーム内アカウントに対応するリコール トークンを Google に保存します。Google は、そのリコール トークンをユーザーの PGS プロファイルに自動的に保存します。

    ゲームサーバーがリコール トークンを Google サーバーに保存する

  3. ユーザーは、PC 版 GPG で初めてゲームをプレイすることにしました。ユーザーは PGS アカウントで自動的にログインし、ゲーム クライアントは、この PGS ユーザーに利用可能な進行状況があるかどうかを確認します。ゲームサーバーは Google に対してクエリを実行し、この PGS アカウント用のトークンがあるかどうかを調べます。Google がリコール トークンを送り返すと、ゲームサーバーがそのトークンを使用してユーザーに関連付けられているアカウント Racer94 を見つけ、進行状況を復元します。PGS によるログインはスムーズに処理され、ユーザーがユーザー名やパスワードを入力しなくても、アプリによって進行状況が復元されます。さらに、デベロッパーは既存の ID システムで PGS ログインを使用し、プレーヤーの進行状況と PGS アカウント間のリンクの保存を Google に任せることができます。

    ゲームサーバーがリコール トークンで進行状況を復元する

上の例に示すように、Recall API で実行される主なアクションは 2 つあります。

  • ユーザーがゲーム内アカウントのいずれかでログインしたときに、Google でトークンを保存する。

  • ゲーム内アカウントを復元するために、ユーザーのトークンを取得する。

Recall API では、リコール トークンに加えて、カーディナリティ制約を適用するために、ゲーム内アカウントに対応する安定した識別子(ペルソナ)も必要です。ペルソナは、デベロッパーの ID システム内でユーザーのゲーム内アカウントを表すラベルと考えることができます。また、リコール トークンは、ユーザーのゲーム内アカウントをゲームに復元するために使用されるキーと考えることができます。ペルソナとトークンの値は、異なる PGS プロジェクトで再利用できません。また、リコール トークンは時間の経過とともに変更される可能性がありますが、ペルソナはユーザーのゲーム内アカウントに応じて安定している必要があります。

カーディナリティ ルール

Recall API では、PGS プロファイルとゲーム内アカウントの間に 1 対 1 の関係(カーディナリティ ルールと呼ばれます)が適用されます。つまり、1 つのペルソナは 1 つの PGS プロファイルにのみリンクでき、1 つの PGS プロファイルは 1 つのペルソナにのみリンクできます。リコール トークンは時間とともに変更される可能性があるため、ペルソナはゲーム内アカウントの安定した識別子として使用されます。

PGS プロファイルにリンクされているペルソナも、時間の経過とともに変更される可能性があります(PGS プロファイルにリンクされているゲーム内アカウントがそれぞれ異なるため)。

リコール トークンの保存と取得の技術的フロー

このセクションでは、リコール トークンを保存および取得する際の、ゲーム クライアントおよびサーバーと Google サーバー間の技術的フローについて説明します。

ステップ 1: PGS ユーザーにログインしてセッション ID を取得する

ゲームは PGS SDK を初期化し、PGS でのユーザー ログインを試みます。

ユーザーが PGS でログインする

ユーザーがログインしていることを前提として、ゲーム クライアントの Games SDK にセッション ID をリクエストし、Google の OAuth バックエンドに OAuth 2.0 トークンをリクエストします。セッション ID と OAuth 2.0 トークンは、Google ゲームのバックエンドとの通信に使用されます。

デベロッパーがセッション ID をリクエストする

ステップ 2: 利用可能なリコール トークンを取得する

PGS ユーザーのアカウントに関連付けられているリコール トークンをリクエストします。トークンがある場合は、ステップ 3a に進み、進行状況を復元します。新規ユーザーでトークンがない場合は、ステップ 3b に進み、新しいトークンを保存します。

デベロッパーがリコール トークンを取得する

ステップ 3a: トークンが存在する場合は、進行状況を復元する

トークンがある場合は、トークンを取得して復号し、ユーザーデータを復元します。

デベロッパーがリコール トークンからデータを復元する

ステップ 3b: トークンが存在しない場合はトークンを保存する

トークンが存在しないため、進行状況は復元されません。ユーザーはデベロッパーの ID システムでログインするか、アカウントが存在しない場合は新しいアカウントを作成します。注: (すでに実行済みの)PGS でログインするのではなく、PGS の外部にあるデベロッパーの ID システムでログインします。

ユーザーがゲーム内アカウントでログインする

ユーザーのゲーム内アカウントをエンコードした、暗号化されたリコール トークンを作成し、セッション ID と OAuth 2.0 トークンとともに Google に送信します。この時点で、Google は送信されたリコール トークンとプレーヤーの PGS アカウントの関連付けを作成します。

デベロッパーがリコール トークンを保存する

PGS プロファイルのないユーザー向けのフロー

プロファイルなしモードを使用すると、まだ PGS プロファイルを作成していないユーザーのリコール トークンを保存できます。ただし、重要な注意事項が 2 点あります。

  • PGS プロフィールのないユーザーのトークンは取得できません。ユーザーが 2 台目のデバイスで Play Games サービスを使用してゲームにログインしようとすると、プロフィールの作成を求めるメッセージが自動的に表示されます。
  • 次の項目を記載した適切な通知を行い、適切なエンドユーザーの同意を得るために、追加のガイドラインに従う必要があります。
    • Google とデータを共有して Play Games アカウントのリンク機能を有効にすること。
    • この共有を管理する設定(Google Play Games の設定など)の有無。
    • Google プライバシー ポリシーに基づくそのようなデータの処理。

トークンとペルソナのペアを保存する

PGS プロファイルのないユーザーがゲームを開く

  1. PGS プロファイルのないユーザーが、プロファイルレス リコールが有効になっているゲームを開きます。
  2. Games SDK が自動ログインをトリガーしますが、ユーザーに PGS プロファイルがないため、失敗します。
  3. Games SDK は、ゲームが Google と統合されていることをユーザーに知らせるスナックバーを表示します。このスナックバーは操作可能です。ユーザーは、プロフィールが作成されるまでリコールを無効にできます。
  4. ゲームがリコール アクセスをリクエストします。デバイスに PGS プロファイルが存在する場合や、デバイスに Google アカウントが存在しない場合、PGS はリコール アクセス リクエストを拒否します。その場合は、PGS を使用せずにゲームを続行する必要があります。
  5. ユーザーがゲーム内アカウントでログインすると、ゲームは、ゲーム内アカウントに対応するユーザーのトークンとペルソナのペアを作成します。ゲームは、このペアを Google に保存します。ユーザーが他のゲーム内アカウントにログインすると、ゲームでトークンがさらに保存されることがあります。

新しいデバイスでゲームを起動する

  1. PGS プロファイルのないユーザーが、デバイスでプロファイルレス リコールが有効になっているゲームを開きます。
  2. ゲームは、トークンとペルソナのペアを保存するで説明されているように、プロファイルのないリコール トークンを記録します。
  3. ユーザーが、同じアカウント設定がされている別のデバイスで同じゲームを開きます。
  4. Games SDK がプロファイルの作成をトリガーします。ユーザーは、以前に保存したリコール トークンを確認して拒否できます。この時点でユーザーは PGS プロフィールを作成します。
  5. PGS への自動ログインが完了し、ゲームは認証済みステータスを受け取ります。
  6. ゲームは通常どおりユーザーの Recall トークンを取得します。

次のステップ

Recall API をクライアントとゲームサーバーに統合するには、こちらのガイダンスに従ってください