メインコンテンツまでスキップ

アイデンティティプロバイダーとしてのGoogle Play Games

Last updated on February 4, 2026

注釈:本資料はAI技術を用いて翻訳されています。

概要

このガイドは、デベロッパーがGoogle PlayアカウントをAccelByte Gaming Services (AGS) に接続するのに役立ちます。ゲームによっては、ここに記載されていないGoogle Playサービス内の追加機能を設定する必要がある場合があります。Google Playサービスの設定に関する詳細については、Googleの担当者に連絡し、Google Playドキュメントを直接確認することをお勧めします。

important

このガイドは公開用であり、機密性のため限定的な情報が含まれています。まず完全な機密ガイドを参照することをお勧めします。機密ガイドのコピーをリクエストするには、AccelByteテクニカルプロデューサーにお問い合わせください。

目標

AGS SDKを使用してゲームのGoogle Play認証方法を有効にします。

前提条件

  • Google Cloud Consoleアカウント。
  • Google Play Consoleアカウント。
  • Unreal Engineを使用する場合、以下が必要です:
  • Unity Engineを使用する場合、以下が必要です:
    • Unity Android Environment Setupに従ってください。
    • 最新バージョンのAGS Unity SDKAccelByte Google Play Games Unity SDKを持っています。
  • 認証を設定し、権限を管理するためのAGS Admin Portalアカウントが必要です。
  • AGS IAM Clientsに精通しています。

Google Playの設定

Google Androidアプリの作成

Googleアプリを作成します。Create and set up your app guideに従ってください。

指定されたkeystoreを使用して、空のUnrealプロジェクトをAndroid App Bundle (AAB)形式でビルドします。Unrealプロジェクト用のkeystoreの生成の詳細については、UnrealのSigning Projects for Releaseの記事をお読みください。

プロジェクトのリリースを作成

アプリのリリースを作成します。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アカウントを使用してゲームにサインインできるようになります。

  1. AGS Admin portalにログインし、ゲームnamespaceを選択します。

  2. サイドバーメニューで、Game Setup > 3rd Party Configuration > Auth & Account Linkingに移動します。

    Add new login method button

  3. Login Methodsページで、+ Add Newボタンをクリックします。Login Platform Configurationページが表示されます。

  4. 利用可能なログインプラットフォームから、Google Play Gamesをクリックします。Create Configurationフォームが表示されます。

    Image shows the Google Play Games platform option

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

    Image shows the Configuration form

  6. Createをクリックします。設定の詳細ページが表示されます。

  7. 詳細ページで、統合の横にあるActivateボタンをクリックし、ポップアップで再度クリックして確認します。

    Activate confirmation message

IAMクライアントの作成

IAMクライアントは、ターゲットプラットフォームでリリースしたいゲームクライアントの表現です。IAMクライアントの詳細については、Manage access control for applicationsを参照してください。

ゲーム内ログイン手順

このドキュメントに従うことで、AGS SDKを使用してゲームサインインプロセスを統合し、プレイヤーがGoogle Playアカウントを使用してゲームにログインできるようにすることができます。プレイヤーがGoogle認証情報を使用してゲームまたはプラットフォームにログインするには、ゲームはプレイヤーが使用している認証情報を持つGoogleプラットフォームからAuth tokenをパブリッシャープラットフォームに渡す必要があります。

各ゲームエンジンの設定は異なります。利用可能なタブからゲームエンジンを選択してください。

ゲーム内ログイン統合 (Unreal)

Unreal Engineプロジェクトの作成

新しいUnreal Engineプロジェクトを作成した後、プロジェクト内でいくつかの設定と構成を行う必要があります。

OnlineSubsystemGoogleプラグインとサービス設定を有効にする

  1. .uprojectファイルでプラグインを有効にします。
{
"Plugins": [
{
"Name": "AccelByteUe4Sdk",
"Enabled": true
},
{
"Name": "OnlineSubsystemAccelByte",
"Enabled": true
},
{
"Name": "OnlineSubsystemGooglePlay",
"Enabled": true
},
{
"Name": "OnlineSubsystemGoogle",
"Enabled": true
}
]
}
  1. 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
  1. <PROJECT>.Build.csファイルに次のコードを追加します。

      if (Target.Platform == UnrealTargetPlatform.Android)
    {
    PrivateDependencyModuleNames.AddRange(new string[]
    {
    "OnlineSubsystemGoogle",
    "OnlineSubsystemGooglePlay",
    });
    }
  2. Platforms - Androidで、このプロジェクト設定とGoogleコンソールで定義されたパッケージ名を一致させます。

  3. Platforms - Android Distribution Settingで、配布署名を設定します。詳細については、Signing Projects for Releaseを参照してください。

  4. Platforms - Android - Google Play Serviceで、Google Play ConsoleからGames App IDGoogle Play License Keyを取得します。

    • Games App IDPlay Games Services > Configurationにあります
    • Google Play License KeyMonetize > Monetization Setup > Licensingにあります
  5. Platforms - Android SDKで、エンジンバージョンに基づいてフィールドを設定します。詳細については、Unreal Engine Version Historyを参照してください。

Google Playネイティブログインとags Accessの実装

  1. 必要なサブシステムとインターフェースを初期化します。
const IOnlineSubsystem* OnlineSubsystemNativePtr = IOnlineSubsystem::GetByPlatform();
const IOnlineIdentityPtr OnlineIdentityNativePtr = OnlineSubsystemNativePtr->GetIdentityInterface();
const IOnlineExternalUIPtr NativeExternalUI = OnlineSubsystemNativePtr->GetExternalUIInterface();
  1. 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.
}));
  1. ユーザーが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
}
  1. 実装を完了するには、以前に取得したトークンを使用して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);