Recall API を使用すると、ゲームは Play Games サービス(PGS)を既存のログイン メカニズム(Google ログインなど)のコンパニオンとして使用し、プレーヤーのログイン情報をデバイス間でシームレスに同期して、オンボーディングのチャーンを減らし、D1 維持率を高めることができます。この API は、Google サーバーにリコール トークンを保存することで、ユーザーの Play Games サービス(PGS)アカウントとゲーム内アカウント間のリンクを管理します。Recall API の使用例を次に示します。
ユーザーがプレイするゲームで、デベロッパーがユーザーの進捗状況を追跡する ID システムを用意し、ユーザーがゲームにログインする際には PGS を他の認証方法と同時に使用します。この例では、ユーザーが PGS アカウント Laura にログインし、Racer94 というデベロッパーの ID システムを使ってゲーム内アカウントを作成します。ユーザーがゲームをプレイすると、デベロッパーのゲームサーバーが進行状況を同期します。
これとは別に、デベロッパーはユーザーのゲーム内アカウントに対応するリコール トークンを Google に保存します。Google は、そのリコール トークンをユーザーの PGS プロファイルに自動的に保存します。
ユーザーは、PC 版 Google Play Games で初めてゲームをプレイすることにしました。ユーザーは 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 でのユーザー ログインを試みます。
ユーザーがログインしていることを前提として、ゲーム クライアントの Games SDK にセッション ID をリクエストし、Google の OAuth バックエンドに OAuth 2.0 トークンをリクエストします。セッション ID と OAuth 2.0 トークンは、Google ゲームのバックエンドとの通信に使用されます。
ステップ 2: 利用可能なリコール トークンを取得する
PGS ユーザーのアカウントに関連付けられているリコール トークンをリクエストします。トークンがある場合は、ステップ 3a に進み、進行状況を復元します。新規ユーザーでトークンがない場合は、ステップ 3b に進み、新しいトークンを保存します。
ステップ 3a: トークンが存在する場合は、進行状況を復元する
トークンがある場合は、トークンを取得して復号し、ユーザーデータを復元します。
ステップ 3b: トークンが存在しない場合はトークンを保存する
トークンが存在しないため、進行状況は復元されません。ユーザーはデベロッパーの ID システムでログインするか、アカウントが存在しない場合は新しいアカウントを作成します。
ユーザーのゲーム内アカウントをエンコードした、暗号化されたリコール トークンを作成し、セッション ID と OAuth 2.0 トークンとともに Google に送信します。この時点で、Google は送信されたリコール トークンとプレーヤーの PGS アカウントの関連付けを作成します。
次のステップ
Recall API をクライアントとゲームサーバーと統合するには、こちらの実装ガイドに沿ってください。