Play Games Services Recall をアプリに統合する

独自のアカウント システムを引き続き使用しながら、ユーザーをゲームにシームレスにログインさせることができます。Play ゲームサービス Recall API を使用すると、ゲーム内アカウントを Google Play ゲームサービス アカウントにリンクできます。ユーザーが異なるデバイス(またはゲームを再インストールした後の同じデバイス)でゲームをプレイするときに、リンクされたゲーム内アカウントを照会して、ログインフローを効率化できます。

Android Recall API と統合している場合、これらの Recall API は使い慣れたものだと思います。Play ゲームサービス Recall とのサーバーサイド統合は、Android と PC で同じであるため、PC タイトルで再利用できます。

前提条件

ステップ 1: マニフェストに Play ゲームサービス プロジェクト ID を追加する

Google Play Console で Play ゲームサービスのセットアップを完了すると、ゲームに Play ゲームサービス プロジェクト ID が関連付けられます。このプロジェクト ID を使用して、ゲームの manifest.xml を更新します。プロジェクト ID は、Google Play Console の Play ゲームサービスの設定ページにある設定ページにあります。

manifest.xml の内容の例:

<?xml version="1.0" encoding="utf-8"?>
<?Manifest version="1">
   <?Application>
     <?PackageName>com.example.package<?/PackageName>
     <?PlayGamesServices>
          <?ProjectId>123456789<?/ProjectId>
     <?/PlayGamesServices>
   <?/Application>
<?/Manifest>

ステップ 2: ログイン時に Recall アクセスをリクエストする

ゲームがログインフローを処理している場合(ゲーム内 アカウントの追加など)、 GamesRecallClient::RequestRecallAccess()を使用して Recall アクセスをリクエストします。

この呼び出しはセッション ID を返します。このセッション ID は、ゲーム内アカウントと Play ゲームサービス ユーザーをリンクおよびリンク解除するために、バックエンドが Google にサーバーサイド呼び出しを行う際に使用されます。

auto promise = std::make_shared<std::promise<RecallAccessResult>>();
games_recall_client.RequestRecallAccess(params, [promise](RecallAccessResult result) {
   promise->set_value(std::move(result));
});

auto recall_access_result = promise->get_future().get();
if (recall_access_result.ok()) {
   auto recall_session_id = recall_access_result.value().recall_session_id;
   // Pass the recall session ID to your backend game server so it can query
   // for an existing linked in-game account.
   // - If you discover an existing linked in-game account, continue to sign-in
   //   the in-game account. This provides a seamless cross-device sign-in
   //   experience.
   // - If there is not an existing linked in-game account, when the user
   //   completes the sign-in using your in-game account system record the
   //   account linking with Play Games Services Recall. This helps to provide
   //   a seamless cross-device sign-in experience when the user returns on a
   //   different device or after re-installing your game on the same device.
} else {
   // Handle the error
}

ステップ 3: Recall セッション ID を処理する

ゲームが Recall セッション ID を取得し、バックエンド ゲーム サーバーに渡したら、Play ゲームのサーバーサイド REST API を使用して次の操作を行います。

  • 既存のリンクされたゲーム内アカウントを照会する recall.retrieveTokens
  • recall.linkPersona を使用して、リンクされたゲーム内アカウントを追加または更新する
  • recall.unlinkPersona を使用して、リンクされたゲーム内アカウントを削除する

サーバーサイド統合の詳細なガイドについては、 ゲームサーバー内で Recall API を 使用する方法に関するドキュメントをご覧ください