アイデンティティプロバイダーとしてのGoogle Play Games
注釈:本資料はAI技術を用いて翻訳されています。
概要
このガイドは、デベロッパーがGoogle PlayアカウントをAccelByte Gaming Services (AGS) に接続するのに役立ちます。ゲームによっては、ここに記載されていないGoogle Playサービス内の追加機能を設定する必要がある場合があります。Google Playサービスの設定に関する詳細については、Googleの担当者に連絡し、Google Playドキュメントを直接確認することをお勧めします。
このガイドは公開用であり、機密性のため限定的な情報が含まれています。まず完全な機密ガイドを参照することをお勧めします。機密ガイドのコピーをリクエストするには、AccelByteテクニカルプロデューサーにお問い合わせください。
目標
AGS SDKを使用してゲームのGoogle Play認証方法を有効にします。
前提条件
- Google Cloud Consoleアカウント。
- Google Play Consoleアカウント。
- Unreal Engineを使用する場合、以下が必要です:
- JDK 1.8.Xソース。
- Android Studio 4.0 Setting Up Android SDK and NDK for Unrealガイドに従ってください。
- Unreal Engine 5.1.1ソースコード
- AGS Game SDKとOSSがインポートされたUnrealゲームプロジェクト。
- 最新バージョンのAGS Unreal SDKとOSS。
- Unity Engineを使用する場合、以下が必要です:
- Unity Android Environment Setupに従ってください。
- 最新バージョンのAGS
Unity SDKとAccelByte Google Play Games Unity SDKを持っています。
- 認証を設定し、権限を管理するためのAGS Admin Portalアカウントが必要です。
- AGS IAM Clientsに精通しています。
Google Playの設定
Google Androidアプリの作成
Googleアプリを作成します。Create and set up your app guideに従ってください。
- Unreal Engine手順
- Unity Engine手順
指定されたkeystoreを使用して、空のUnrealプロジェクトをAndroid App Bundle (AAB)形式でビルドします。Unrealプロジェクト用のkeystoreの生成の詳細については、UnrealのSigning Projects for Releaseの記事をお読みください。
指定されたkeystoreを使用して、空のUnityプロジェクトをAAB形式でビルドします。Unityプロジェクト用のkeystoreの生成と使用の詳細については、UnityのAndroid Keystoreの記事をお読みください。
プロジェクトのリリースを作成
アプリのリリースを作成します。Prepare and roll out a release guideに従ってください。
Google Play Games Servicesの設定
Google Play Games Servicesを設定します。Set Up Google Play Games Services guideに従ってください。以下を行う必要があります:
- Play Games Servicesプロジェクトを作成します。
- Google Cloud PlatformでOAuth同意画面を作成します。OAuth consent screenで、アプリに次の4つのスコープを追加します:
openid.../auth/games.../auth/games_lite.../auth/drive.appdata
- AndroidとGame Server認証情報を作成します。
すべての設定が完了したら、レビューして公開します。
AGSでGoogle Play Gamesログイン方法を設定
次の手順に従って、ゲームのGoogle Playログインを設定します。これにより、プレイヤーはGoogle Playアカウントを使用してゲームにサインインできるようになります。
-
AGS Admin portalにログインし、ゲームnamespaceを選択します。
-
サイドバーメニューで、Game Setup > 3rd Party Configuration > Auth & Account Linkingに移動します。

-
Login Methodsページで、+ Add Newボタンをクリックします。Login Platform Configurationページが表示されます。
-
利用可能なログインプラットフォームから、Google Play Gamesをクリックします。Create Configurationフォームが表示されます。

-
Google Cloud Console認証情報でフォームに入力します。Client IDにGoogle OAuth Client IDを、Client SecretにGoogle OAuth Client Secretを、Redirect URIに**http://127.0.0.1**(localhost)を入力します。

-
Createをクリックします。設定の詳細ページが表示されます。
-
詳細ページで、統合の横にあるActivateボタンをクリックし、ポップアップで再度クリックして確認します。
IAMクライアントの作成
IAMクライアントは、ターゲットプラットフォームでリリースしたいゲームクライアントの表現です。IAMクライアントの詳細については、Manage access control for applicationsを参照してください。
ゲーム内ログイン手順
このドキュメントに従うことで、AGS SDKを使用してゲームサインインプロセスを統合し、プレイヤーがGoogle Playアカウントを使用してゲームにログインできるようにすることができます。プレイヤーがGoogle認証情報を使用してゲームまたはプラットフォームにログインするには、ゲームはプレイヤーが使用している認証情報を持つGoogleプラットフォームからAuth tokenをパブリッシャープラットフォームに渡す必要があります。
各ゲームエンジンの設定は異なります。利用可能なタブからゲームエンジンを選択してください。
- Unreal Engine手順
- Unity Engine手順
ゲーム内ログイン統合 (Unreal)
Unreal Engineプロジェクトの作成
新しいUnreal Engineプロジェクトを作成した後、プロジェクト内でいくつかの設定と構成を行う必要があります。
OnlineSubsystemGoogleプラグインとサービス設定を有効にする
.uprojectファイルでプラグインを有効にします。
{
"Plugins": [
{
"Name": "AccelByteUe4Sdk",
"Enabled": true
},
{
"Name": "OnlineSubsystemAccelByte",
"Enabled": true
},
{
"Name": "OnlineSubsystemGooglePlay",
"Enabled": true
},
{
"Name": "OnlineSubsystemGoogle",
"Enabled": true
}
]
}
DefaultEngine.ini内で、Google Cloudプラットフォームからの認証情報を設定して追加します。
[OnlineSubsystem]
DefaultPlatformService=GooglePlay
NativePlatformService=Google
[OnlineSubsystemGoogle]
bEnabled=True
ClientId=123456789-abcdefghijklmnopqrstuvwxyz.apps.googleusercontent.com
ServerClientId=123456789-abcdefghijklmnopqrstuvwxyz.apps.googleusercontent.com
ClientSecret=abcdefghijklmnopqrstuvwxyz123456789
[OnlineSubsystemGoogle.OnlineIdentityGoogle]
+ScopeFields="email"
+ScopeFields="profile"
+ScopeFields="https://www.googleapis.com/auth/userinfo.email"
+ScopeFields="https://www.googleapis.com/auth/userinfo.profile"
[OnlineSubsystemGooglePlay]
bEnabled=True
[OnlineSubsystemGooglePlay.Store]
bSupportsInAppPurchasing=True
bUseStoreV2=False
[/Script/AccelByteUe4Sdk.AccelByteSettings]
ClientId=abcdefg12345
ClientSecret=abcdefg12345
Namespace=test
PublisherNamespace=accelbyte
BaseUrl="https://prod.gamingservices.accelbyte.io"
QosPingTimeout=0.6
-
<PROJECT>.Build.csファイルに次のコードを追加します。if (Target.Platform == UnrealTargetPlatform.Android)
{
PrivateDependencyModuleNames.AddRange(new string[]
{
"OnlineSubsystemGoogle",
"OnlineSubsystemGooglePlay",
});
} -
Platforms - Androidで、このプロジェクト設定とGoogleコンソールで定義されたパッケージ名を一致させます。
-
Platforms - Android Distribution Settingで、配布署名を設定します。詳細については、Signing Projects for Releaseを参照してください。
-
Platforms - Android - Google Play Serviceで、Google Play ConsoleからGames App IDとGoogle Play License Keyを取得します。
- Games App IDはPlay Games Services > Configurationにあります
- Google Play License KeyはMonetize > Monetization Setup > Licensingにあります
-
Platforms - Android SDKで、エンジンバージョンに基づいてフィールドを設定します。詳細については、Unreal Engine Version Historyを参照してください。
Google Playネイティブログインとags Accessの実装
- 必要なサブシステムとインターフェースを初期化します。
const IOnlineSubsystem* OnlineSubsystemNativePtr = IOnlineSubsystem::GetByPlatform();
const IOnlineIdentityPtr OnlineIdentityNativePtr = OnlineSubsystemNativePtr->GetIdentityInterface();
const IOnlineExternalUIPtr NativeExternalUI = OnlineSubsystemNativePtr->GetExternalUIInterface();
- Google Playでログインするためのログインuiを実装します。
FDelegateHandle NativeOnLoginCompleteDelegateHandle;
const FOnLoginCompleteDelegate NativeLoginComplete = FOnLoginCompleteDelegate::CreateLambda(
[&](int32 LoggedInLocalUserNum, bool bWasSuccessful, const FUniqueNetId& UserId, FString Error)
{
// Put your next implementation here.
OnlineIdentityNativePtr->ClearOnLoginCompleteDelegate_Handle(0, NativeOnLoginCompleteDelegateHandle);
});
NativeOnLoginCompleteDelegateHandle = OnlineIdentityNativePtr->AddOnLoginCompleteDelegate_Handle(0, NativeLoginComplete);
NativeExternalUI->ShowLoginUI(0
, true
, false
, FOnLoginUIClosedDelegate::CreateLambda([this, &OnlineIdentityNativePtr, &NativeOnLoginCompleteDelegateHandle, &Result, &bNativeLoginSuccess](FUniqueNetIdPtr UniqueId, const int ControllerIndex, const FOnlineError& Error)
{
// Put your next implementation here.
}));
- ユーザーがGoogle Playログインを完了したら、Auth ID Tokenを取得します。
FString GooglePlayToken = TEXT("");
if (!NativeUserAccountPtr->GetAuthAttribute(AUTH_ATTR_ID_TOKEN, GooglePlayToken))
{
// Do something when Google Play failed to retrieve the Auth Id Token
}
- 実装を完了するには、以前に取得したトークンを使用してAGSにログインします。
const IOnlineIdentityPtr OnlineIdentityABPtr = OnlineSubsystemABPtr->GetIdentityInterface();
FDelegateHandle ABOnLoginCompleteDelegateHandle;
{
const FOnLoginCompleteDelegate ABLoginComplete = FOnLoginCompleteDelegate::CreateLambda(
[&](int32 LoggedInLocalUserNum, bool bWasSuccessful, const FUniqueNetId& UserId, FString Error)
{
// Put your next implementation here.
OnlineIdentityABPtr->ClearOnLoginCompleteDelegate_Handle(0, ABOnLoginCompleteDelegateHandle);
});
ABOnLoginCompleteDelegateHandle = OnlineIdentityABPtr->AddOnLoginCompleteDelegate_Handle(0, ABLoginComplete);
}
FOnlineAccelByteAccountCredentials OnlineAccountCredentialsNative(
EAccelByteLoginType::GooglePlayGames,
"",
GooglePlayToken,
true);
OnlineIdentityABPtr->Login(0, OnlineAccountCredentialsNative);
ゲーム内ログイン統合 (Unity) (非推奨)
AccelByte Unity SDK Google Play Games拡張機能は非推奨です。Google as Identity Providerガイドに従って、AccelByte Unity SDK Googleを使用してください。
AccelByte Unity SDK Google Play Games拡張機能を使用すると、Google Playの機能をAGSと統合できます。この拡張機能はGitHubで見つけてダウンロードできます。拡張機能をインストールしてゲームにGoogleログインを実装するには、GitHubの拡張機能のinstallation guideに従ってください。
Google Play Games Android設定のセットアップ
- プロジェクトで、Window > Google Play Games > Setup > **Android setup...**に移動します。
- 次のように必要な情報を入力します:
- Resources Definition: Play ConsoleからのAndroidリソースデータを使用します。
- Web client ID: 生成されたOAuth credentialsからのClient IDを使用します。
- Setupをクリックします。これにより、クライアントIDでゲームが設定され、各Androidリソースの定数を含むC#クラスが生成されます。