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

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

Last updated on February 4, 2026

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

概要

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

important

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

目標

  • AGS SDKを使用してゲームのOculus認証方法を有効にする。
  • AGS Player Portalを使用してパブリッシャーウェブサイトのOculus認証方法を有効にする。

前提条件

ウェブログイン統合

  • 認証されたOculus Developerアカウントが必要です。
  • 認証を設定し、権限を管理するためのAGS Admin Portalアカウントが必要です。
  • まだ行っていない場合は、Player PortalとLauncher用のPublisher Namespaceを設定してください。
  • Player Portalが必要です。

ゲーム内ログイン統合

  • 認証されたOculus Developerアカウントが必要です。
  • Unreal Engineの場合、OnlineSubsystem Oculusプラグインをアクティベートする必要があります。
  • Unityの場合、Oculus Unity Integrationが必要です。Oculus Integration | Integration | Unity Asset Storeで見つけることができます。
  • 認証を設定し、権限を管理するためのAccelByte Admin Portalアカウントが必要です。
  • まだ行っていない場合は、ゲーム用のGame Namespaceを設定してください。
  • 最新バージョンのAccelByte Game SDKがインポートされたUnityまたはUnreal Engineゲームプロジェクトが必要です。
  • AGS Identity and Access Management (IAM) Clientsに関する知識。

Oculus Metaの設定

Oculus Metaアプリケーションの設定

Oculusデベロッパーアカウントでoculus Metaアプリケーションを設定します。Oculus MetaのCreate an App Pageガイドに従ってください。

Oculus Metaプラットフォーム機能のリクエスト

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

注記

Oculus Developer Portalでの設定に問題がある場合は、カスタマーサポートに連絡してAccelByteから利用可能なガイドのコピーをリクエストしてください。

Oculusログイン方法の設定

ウェブログイン

AGS Shared Cloud

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

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

  1. AGS Admin portalで、パブリッシャーnamespaceに移動します。

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

  3. Login Methodsページで、+ Add Newボタンをクリックします。

    Image shows the +Add New button on the Login Methods page

  4. ログイン方法オプションのリストから、Oculus Webを選択します。

    Image shows the Oculus Web button

  5. Create Configurationポップアップが表示されます。必要な情報を入力し、Createをクリックします。

    • Client IDフィールドにOculus App IDを入力します。
    • Client SecretフィールドにOculus App Secretを入力します。
    • Organization IDフィールドにOculus Organization IDを入力します。
    • Redirect URIフィールドに<BASE_URL>/auth/platforms/oculuswebを入力します。<BASE_URL>をドメインアドレス(例: https://development.accelbyte.io)に置き換えます。

    Image shows the Create Configuration form

  6. 詳細ページにリダイレクトされます。詳細ページでActivateをクリックし、ポップアップでActivateをクリックします。

    Image shows the detail page of the new configuration

ゲーム内ログイン

プレイヤーがOculusアカウントを使用してゲーム内からログインできるようにするには、次の手順に従います:

  1. AGS Admin portalで、ゲームnamespaceに移動します。

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

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

    Image shows the +Add New button on the Login Methods page

  4. ログイン方法オプションのリストから、Oculus SDKを選択します。

    Image shows the Oculus SDK button

  5. Create Configurationポップアップが表示されます。必要な情報を入力し、Createをクリックします。設定の詳細ページが表示されます。

    • Client IDフィールドにOculus App IDを入力します。
    • Client SecretフィールドにOculus App Secretを入力します。

    Image shows the Create Configuration form

  6. 詳細ページでActivateをクリックし、ポップアップでActivateをクリックします。

    Image shows the detail page of the new configuration

IAMクライアントの作成

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

ゲーム内ログイン

各ゲームエンジンの設定は異なります。ゲームエンジンに適用される手順に従ってください。

Unrealゲーム内ログイン統合

OculusAccelByte SDKとサインインに統合して、プレイヤーがOculus認証情報を使用してゲームにログインできるようにすることができます。

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

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

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

[OnlineSubsystem]
DefaultPlatformService=Oculus

[OnlineSubsystemOculus]
bEnabled=true
RiftAppId=[YourAppId]

Unreal Engineサンプルコード実装

SDKを使用してOculusログイン統合をゲームに統合する方法を学びます。ロジックは、プレイヤーがOculusでログインしたときにプレイヤーのログインをオーバーライドし、AGSプラットフォームを使用してSDKがアクセスできるサービスを提供することです。

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

注記

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

  1. Oculusがエンタイトルメントパスを実行したら、platform_tokensを取得するためにオンラインアイデンティティ関数を呼び出すことを確認してください。

    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);
    }
    注記

    Oculus認証の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

以下の画像は、Oculusアカウントを使用したテストアプリへの正常なログインを示しています。

Image shows sample code for Unreal code testing

注意

Oculusには2種類のユーザーIDがあります:

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

AGSアカウントリンクには、この組織内のアプリに関係なく同じOculusアカウントを識別できるようにorganization scoped idを使用します。

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

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

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