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

Meta Quest をアイデンティティプロバイダーとして設定する

Last updated on August 5, 2026

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

概要

このガイドでは、認証済みの Meta Quest 開発者が Meta Quest アカウントを AccelByte Gaming Services (AGS) に接続する方法を説明します。Meta Quest サービス側で追加機能の設定が必要になる場合があります。Meta Quest サービスの設定について詳しくは、Meta の担当者に問い合わせるとともに、Meta Quest のドキュメントを確認することをお勧めします。

important

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

目標

  • AGS SDK を使用して、ゲームで Meta Quest 認証方式を有効にします。
  • AGS Player Portal を使用して、パブリッシャーウェブサイトで Meta Quest 認証方式を有効にします。

前提条件

Web ログイン統合

  • 認証済みの Meta Quest Developer アカウントが必要です。
  • 認証を設定し、権限を管理するための AGS Admin Portal アカウントが必要です。
  • まだ行っていない場合は、Player Portal と Launcher のパブリッシャー名前空間を設定してください。
  • Player Portal が必要です。

インゲームログイン統合

  • 認証済みの Meta Quest Developer アカウントが必要です。
  • Unreal Engine の場合、OnlineSubsystem Oculus プラグインを有効化する必要があります。
  • Unity の場合、Oculus Unity Integration が必要です。Oculus Integration | Integration | Unity Asset Store から入手できます。
  • 認証を設定し、権限を管理するための AccelByte Admin Portal アカウントが必要です。
  • まだ行っていない場合は、ゲーム用のゲーム名前空間を設定してください。
  • 最新バージョンの AccelByte Game SDK がインポートされた Unity または Unreal Engine のゲームプロジェクトが必要です。
  • AGS Identity and Access Management (IAM) クライアントに関する知識が必要です。

Meta Quest を設定する

Meta Quest アプリケーションを設定する

Meta Quest 開発者アカウントで Meta Quest アプリケーションを設定します。Meta の Create an App Page ガイドに従ってください。

Meta Quest でプラットフォーム機能をリクエストする

アプリケーションの作成が完了したら、ユーザー ID、ユーザープロフィール、アバターなどの特定のユーザーデータにアクセスするために、データ使用チェックアップ (DUC) をリクエストします。Meta の Data User Checkup ガイドにある Submitting a DUC Guide の手順に従ってください。

注記

Meta Quest Developer Portal での設定がうまくいかない場合は、カスタマーサポートに問い合わせて、AccelByte が提供しているガイドのコピーをリクエストしてください。

Meta Quest ログイン方式を設定する

Web ログイン

AGS Public Cloud

Web ログイン統合は現在 AGS Public Cloud では利用できず、AGS Private Cloud でのみサポートされています。

プレイヤーが Meta Quest アカウントを使用して Player Portal にログインできるようにするには、次の手順に従います。

  1. AGS Admin Portal で、パブリッシャー名前空間に移動します。

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

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

    Auth & Account Linking ページに表示された +Add New ボタンの画像

  4. Select login provider ページで、Gaming Platform タブから Meta Quest Web を選択します。

    Select login provider ページに表示された Meta Quest Web カードの画像

  5. Set Up Meta Quest Web login provider ダイアログが表示されます。以下のフィールドを入力します。

    • Platform ID: oculusweb。自動的に設定されるため、変更できません。
    • Client ID: Meta Quest の App ID。
    • Client Secret: Meta Quest の App Secret。
    • Organization ID: Meta Quest の Organization ID。
    • Redirect URI: <BASE_URL>/auth/platforms/oculusweb<BASE_URL> は自社のドメインアドレス(例: https://development.accelbyte.io)に置き換えます。あわせて、以下の URI を Meta Quest Developer Console の許可済みリダイレクト URI として登録してください。
      • <BASE_URL>/auth/platforms/oculusweb
      • <BASE_URL>/iam/v3/public/namespaces/<Namespace>/users/me/platforms/oculusweb/web/link/establish(アカウント連携で使用)

    Set Up Meta Quest Web login provider ダイアログの画像

  6. Add & Activate をクリックすると、プロバイダーの作成と有効化を一度に行えます。有効化せずに作成する場合は、Add をクリックします。

ログインプロバイダーを編集する

  1. Auth & Account Linking ページで、Meta Quest Web のエントリをクリックします。

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

    Status トグルが表示された Meta Quest Web login provider ダイアログの画像

  3. 上部にある Status トグルを使用して、プロバイダーを有効化または無効化します。

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

インゲームログイン

プレイヤーがインゲームから Meta Quest アカウントを使用してログインできるようにするには、次の手順に従います。Meta Quest SDK プロバイダーは、Shared Cloud と Private Cloud の両方のゲーム名前空間で利用できます。

  1. AGS Admin Portal で、ゲーム名前空間に移動します。

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

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

    Auth &amp; Account Linking ページに表示された +Add New ボタンの画像

  4. Select login provider ページで、Gaming Platform タブから Meta Quest SDK を選択します。

    Select login provider ページに表示された Meta Quest SDK カードの画像

  5. Set Up Meta Quest SDK login provider ダイアログが表示されます。以下のフィールドを入力します。

    • Platform ID: oculus。自動的に設定されるため、変更できません。
    • Client ID: Meta Quest の App ID。
    • Client Secret: Meta Quest の App Secret。

    Set Up Meta Quest SDK login provider ダイアログの画像

  6. Add & Activate をクリックすると、プロバイダーの作成と有効化を一度に行えます。有効化せずに作成する場合は、Add をクリックします。

ログインプロバイダーを編集する

  1. Auth & Account Linking ページで、Meta Quest SDK のエントリをクリックします。

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

    Status トグルが表示された Meta Quest SDK login provider ダイアログの画像

  3. 上部にある Status トグルを使用して、プロバイダーを有効化または無効化します。

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

IAM クライアントを作成する

IAM クライアントは、対象プラットフォームでリリースしたいゲームクライアントを表すものです。IAM クライアントの詳細については、アプリケーションのアクセス制御を管理するを参照してください。

インゲームログイン統合

セットアップはゲームエンジンごとに異なります。使用しているゲームエンジンに適用される手順に従ってください。

Unreal インゲームログイン統合

Meta QuestAccelByte SDK のサインインと統合することで、プレイヤーは Meta Quest の認証情報でゲームにログインできるようになります。

Unreal Engine の準備と設定

依存関係を追加する

  1. Build.cs ファイルに、OnlineSubsystemOnlineSubsystemOculusLibOvrPlatform というパブリック依存関係モジュールを追加します。これらの依存関係は、プロジェクトが Unreal Engine の Oculus オンラインサブシステムを使用するために必要です。

    public ABThirdPartyLogin(ReadOnlyTargetRules Target) : base(Target)
    {
    PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;

    PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "OnlineSubsystem", "OnlineSubsystemUtils",
    "OnlineSubsystemOculus","LibOVRPlatform",
    "Sockets", "Networking", "InputCore", "AccelByteUe4Sdk", "Json", "JsonUtilities", "Http", "WebSockets"
    });

    PrivateDependencyModuleNames.AddRange(new string[] { });
    PrivateDependencyModuleNames.Add("OnlineSubsystem");
  2. TutorialProject.Target.csTutorialProjectEditor.Target.cs の中にも OnlineSubsystemOculus を追加する必要があります。

    public ABThirdPartyLoginTarget( TargetInfo Target) : base(Target)
    {
    Type = TargetType.Game;
    DefaultBuildSettings = BuildSettingsVersion.V2;
    ExtraModuleNames.AddRange( new string[] { "ABThirdPartyLogin", "OnlineSubsystem", "AccelByteUe4Sdk", "OnlineSubsystemOculus" } );
    }
    public ABThirdPartyLoginEditorTarget( TargetInfo Target) : base(Target)
    {
    Type = TargetType.Editor;
    DefaultBuildSettings = BuildSettingsVersion.V2;
    ExtraModuleNames.AddRange( new string[] { "ABThirdPartyLogin", "OnlineSubsystem", "AccelByteUe4Sdk", "OnlineSubsystemOculus" } );
    }

Meta Quest 用の Unreal Engine プロジェクト設定

DefaultEngine.ini ファイルに、Meta Quest 設定用の変数をいくつか追加する必要があります。プロジェクトを開くには、この設定が必要です。デフォルトでは、Meta Quest は自動的に初期化されます。Rift アプリを開発する場合は、RiftAppId=[YourAppId] を使用していることを確認してください。それ以外の場合は、OculusAppId=[YourAppId] を使用できます。

[OnlineSubsystem]
DefaultPlatformService=Oculus

[OnlineSubsystemOculus]
bEnabled=true
RiftAppId=[YourAppId]

Unreal Engine のサンプルコード実装

ここでは、AGS SDK を使用して Meta Quest ログイン統合をゲームに組み込む方法を説明します。ここでのロジックは、プレイヤーが Meta Quest でログインした際にそのログインをオーバーライドし、AGS プラットフォームを通じて SDK がアクセスできるサービスを提供するというものです。

このプロジェクトは Meta Quest をプラットフォームとして使用しているため、プレイヤーは Meta Quest の認証情報でログインできます。

注記

スニペットで使用されている AccelByteOnlineSubsystemPtr を取得するには、このガイドに従ってください。

  1. Meta Quest のエンタイトルメントチェックに合格したら、platform_token を取得するために、オンラインアイデンティティインターフェースの関数を必ず呼び出してください。

    const IOnlineSubsystem* OnlineSubsystem = IOnlineSubsystem::Get();
    if (OnlineSubsystem == nullptr)
    {
    FString Message = TEXT("Cannot login with no online subsystem set!");
    UE_LOG(LogTemp, Warning, TEXT("%s"), *Message);
    OnActionInfoUpdated.Broadcast(Message);
    return;
    }

    const IOnlineIdentityPtr OnlineIdentity = OnlineSubsystem->GetIdentityInterface();
    if (!OnlineIdentity.IsValid())
    {
    FString Message = TEXT("Could not retrieve identity interface from native subsystem.");
    UE_LOG(LogTemp, Warning, TEXT("%s"), *Message);
    OnActionInfoUpdated.Broadcast(Message);
    return;
    }
  2. システムが platform_token を取得すると、そのトークンを使用して AccelByte の loginWithOtherPlatform API を呼び出します。コードは次のようになります。

    const FOnLoginCompleteDelegate NativeLoginComplete = FOnLoginCompleteDelegate::CreateLambda([=]
    (int32 LocalUserNum, bool bWasSuccessful, const FUniqueNetId& UserId, const FString& Error) {
    UE_LOG(LogTemp, Warning, TEXT("OnLoginComplete %s : %s"), bWasSuccessful ? TEXT("Success") : TEXT("Fail"), *Error);
    FString Message = FString::Printf(TEXT("OnLoginComplete %s : %s"), bWasSuccessful ? TEXT("Success") : TEXT("Fail"), *Error);
    OnActionInfoUpdated.Broadcast(Message);

    if (bWasSuccessful)
    {
    auto OculusUserId = OnlineIdentity->GetUniquePlayerId(0);
    auto GenAuth = OnlineIdentity->GetAuthToken(LocalPlayer->GetControllerId());
    const FString PlatformToken = (TEXT("%s:%s"), OculusUserId, GenAuth);
    UE_LOG(LogTemp, Warning, TEXT("PlatformToken : %s"), *PlatformToken);
    OnActionInfoUpdated.Broadcast(FString::Printf(TEXT("PlatformToken : %s"), *PlatformToken));

    auto ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient(TEXT("YOUR_KEY"));
    auto UserApi = ApiClient->GetUserApi().Pin();

    UserApi->LoginWithOtherPlatform(EAccelBytePlatformType::Oculus, PlatformToken, OnLoginSuccessDelegate, OnLoginErrorDelegate);
    UE_LOG(LogTemp, Warning, TEXT("Request LoginWithOtherPlatform"));
    OnActionInfoUpdated.Broadcast(TEXT("Request LoginWithOtherPlatform"));
    }
    });
    OnlineIdentity->AddOnLoginCompleteDelegate_Handle(LocalPlayer->GetControllerId(), NativeLoginComplete);
    const bool bWaitForDelegate = OnlineIdentity->Login(LocalPlayer->GetControllerId(), FOnlineAccountCredentials());
    if (!bWaitForDelegate)
    {
    FString Message = TEXT("The online subsystem couldn't login");
    UE_LOG(LogTemp, Warning, TEXT("%s"), *Message);
    OnActionInfoUpdated.Broadcast(Message);
    }
    注記

    Meta Quest 認証の platform_token<oculus_user_id>:<nonce_value> です。

    このコードで正しいプラットフォーム EAccelBytePlatformType::Oculus を指定していることを確認してください。

    UserApi->LoginWithOtherPlatform(EAccelBytePlatformType::Oculus, PlatformToken, OnLoginSuccessDelegate, OnLoginErrorDelegate);

サンプルコードのテスト

起動引数

エディタでプロジェクトを実行して起動するか、コマンドプロンプトまたは Powershell でこの実行コマンドを使用します。

"[[PathToUE5Folder]]\Epic Games\UE_5.0\Engine\Binaries\Win64\UnrealEditor.exe]" "[PathToProjectFolder]\TestingUnreal\ABThirdPartyLogin\ABThirdPartyLogin.uproject" -skipcompile -game

以下の画像は、Meta Quest アカウントを使用してテストアプリへのログインに成功した様子を示しています。

Unreal のコードテスト用サンプルコードの画像

注意

Meta Quest には 2 種類のユーザー ID があります。

  • app scoped id: アプリケーションごとに一意な ID で、同じアプリケーションでもデバイスが異なれば異なる値になります。アプリグルーピングを利用することでこれを回避でき、同じアプリグループ内では新しいユーザーも同じ app scoped id を持ちます。デバイス間でユーザーデータを共有したいゲームの場合は、対象のアプリを同じアプリグループに配置してください。
  • organization scoped id: 組織ごとに一意な ID で、同じ組織内の異なるアプリが同一ユーザーを識別できるようにします。

AGS のアカウント連携では、この組織内のアプリに関わらず同じ Meta Quest アカウントを識別できるように、organization scoped id を使用します。

また、IAP のような一部の機能には app scoped id を利用します。

このエンドポイントを使用して、AGS ユーザー ID から app scoped id を取得できます。

このエンドポイントを使用して、app scoped id から AGS ユーザーアカウントを取得できます。