独自のアカウント システムを引き続き使用しながら、ユーザーをゲームにシームレスにログインさせることができます。Play Games サービス Recall API を使用すると、ゲーム内アカウントを Google Play Games サービス アカウントにリンクできます。ユーザーがゲームを別のデバイスでプレイする場合(またはゲームを再インストールした後に同じデバイスでプレイする場合)、リンクされたゲーム内アカウントを照会して、ログインフローを効率化します。
Android Recall API と統合している場合、これらの Recall API は使い慣れたものだと思います。Play ゲームサービス Recall とのサーバーサイド統合は、Android と PC で同じであるため、PC タイトルで再利用できます。
Namespace: PlayPcSdkManaged.Recall
Client Class: RecallClient
前提条件
Play Games サービス Recall API の概要を読む
Google Play Console で Google Play Games サービスの設定を完了する
マニフェストに Play Games サービス プロジェクト ID を追加する
Google Play Console で Play ゲームサービスの設定を完了すると、ゲームに Play ゲームサービス プロジェクト ID が関連付けられます。このプロジェクト ID を使用して、ゲームの manifest.xml を更新します。プロジェクト ID は、Google Play Console の [Play Games サービスの設定] ページにあります。
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>
注: Google Play Games からゲーム実行可能ファイルをデジタル署名したり、起動したりすることなく、Unity エディタで開発中に PC SDK を使用する場合は、 マニフェストの設定手順については、 デベロッパー モードの設定ガイドをご覧ください。
クライアントを作成する
ファクトリーを使用して RecallClient を作成します。これにより、Unity セーフ コールバックが自動的に登録されます。
using UnityEngine; using System; using System.Threading.Tasks; // Required SDK Namespaces using PlayPcSdkManaged.Recall; using PlayPcSdkManaged.Unity; public class RecallManager : MonoBehaviour { private RecallClient _recallClient; public void SetupRecall() { try { // Creates the client with the required UnityRecallCallbacksHandler _recallClient = PlayPcSdkFactory.CreateRecallClient(); Debug.Log("Recall Client created successfully."); } catch (Exception ex) { Debug.LogError($"Failed to create Recall Client: {ex.Message}"); } } private void OnDestroy() { // Always dispose of the client to clean up native C++ resources _recallClient?.Dispose(); } }
Recall へのアクセスをリクエストする
ゲームがログインフローを処理している場合(ゲーム内
アカウントの追加など)、Recall へのアクセスをリクエストするには
RequestRecallAccessAsyncを使用します。
この呼び出しはセッション ID を返します。この ID は、バックエンドが Google にサーバーサイド呼び出しを行い、ゲーム内アカウントを Play Games サービス ユーザーにリンクまたはリンク解除するために使用されます。
public async Task RequestRecallAccessAsync() { try { Debug.Log("Requesting Recall access..."); // Async call to retrieve the session ID var result = await _recallClient.RequestRecallAccessAsync(); if (result.IsOk) { // On success, access the RecallSessionId var sessionId = result.Value.RecallSessionId; Debug.Log($"Recall Access Granted! Session ID: {sessionId}"); // Pass 'sessionId' to your backend server to process account linking } else { // Handle expected API errors (e.g., Error) Debug.LogError($"Request Failed: {result.Code} - {result.ErrorMessage}"); } } catch (Exception ex) { Debug.LogException(ex); } }
Recall セッション ID を処理する
ゲームが Recall セッション ID を取得してバックエンド ゲーム サーバーに渡したら、Play Games サーバーサイド REST API を使用して次の操作を行います。
-
recall.retrieveTokensを使用して、既存のリンクされたゲーム内アカウントを照会する -
recall.linkPersonaを使用して、リンクされたゲーム内アカウントを追加または更新する -
recall.unlinkPersonaを使用して、リンクされたゲーム内アカウントを削除する
サーバーサイド統合の詳細なガイドについては、 ゲームサーバー内で Recall API を 使用する方法に関するドキュメントをご覧ください。