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

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

Last updated on August 5, 2026

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

概要

このガイドでは、Google Play GamesアカウントをAccelByte Gaming Services (AGS) に接続する方法を説明します。Google Play GamesはGoogleサインインとは別の仕組みであり、Google Play Games Services SDKを使用するAndroidゲーム向けの機能です。標準のGoogleサインインについては、アイデンティティプロバイダーとしてのGoogleの設定を参照してください。ゲームによっては、このガイドに記載されていない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 SDK および AccelByte Google Play Games Unity SDK
  • 認証の設定と権限の管理を行うためのAGS Admin Portalアカウントを保有していること。
  • AGS IAM Clientsに関する知識があること。

Google Playの設定

Google Androidアプリの作成

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

指定した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 Gamesログインを設定します。これにより、プレイヤーは自身のGoogle Play Gamesアカウントを使用してゲームにサインインできるようになります。

  1. AGS Admin Portalで、対象のゲームnamespaceに移動します。

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

    Add new login method button

  3. Auth & Account Linkingページで、+ Add Newをクリックします。

  4. Select login providerページで、Gaming Platformタブ内のGoogle Play Gamesを探してクリックします。

    Image shows the Google Play Games platform option

  5. Set up Google Play Games login providerフォームが表示されます。

    Image shows the Configuration form

  6. 以下のフィールドに入力します。

    • Platform ID: googleplaygames。自動的に設定されるため、変更はできません。
    • Client ID: Google Cloud Consoleで取得したOAuth Client ID。
    • Client secret: Google Cloud Consoleで取得したOAuth Client Secret。
    • Redirect URI: OAuthのコールバックURL。デフォルトでhttp://127.0.0.1が入力されています。
  7. Add & Activateをクリックすると、プロバイダーの作成と有効化を一度に実行できます。有効化せずに作成のみを行う場合は、Addをクリックしてください。

    Activate confirmation message

ログインプロバイダーの編集

  1. Auth & Account Linkingページで、Google Play Gamesの項目をクリックします。

  2. プロバイダーの設定内容を表示するダイアログが開きます。必要に応じて各フィールドを更新します。

  3. 画面上部のStatusトグルで、プロバイダーの有効化または無効化を切り替えます。

  4. Saveをクリックします。

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);