アカウントのリンク
システム内のユーザーのアカウントとそのユーザーのMetaアカウント間で、アカウントのリンクを設定できます。これにより、システムはユーザーのエイリアス(ユーザーのMetaユーザーネーム)と、組織内ID(チームのMeta Questアプリ間でユーザーを識別するID)にアクセスできます。
アプリを開発する際には、年齢に関する以下の制限について考慮してください。
- 13歳未満の子ども (10~12歳): アプリの自己認証ステータスに関わらず、13歳未満の子どもはこのPlatform SDK機能にアクセスできません。子どものユーザーが安全かつ快適にアプリを利用できるよう、サポートされていない機能のエラー処理を実装してください。
このガイドでは、開発者ダッシュボードでアカウントのリンクを設定する方法、ユーザーエクスペリエンス、IDとエイリアスを取得するために必要な手順について説明します。アカウントのリンクを使用するには、開発者ダッシュボードに設定されたアプリと、ユーザーアカウントまたはテストユーザーアカウントが必要です。
1.開発者ダッシュボードにログインURLを登録する
アプリのアカウントのリンクを設定するには、まず開発者ダッシュボードにSSO URIを登録する必要があります。
開発者ダッシュボードにログインします。左側のナビゲーションパネルから、
[Team (チーム)] >
[SSO]に移動します。
表示されたボックスにログインURIを入力し、[Submit (送信)]をクリックします。
アプリやウェブサイトでは、Metaアカウントを使ってシステムでアカウントを有効にするボタン(またはその他のUI)をユーザーに提供する必要があります。
登録済みのSSO URIとMeta QuestのチームIDをクエリパラメーターとして指定して、ボタンをクリック(または他のUIからアカウントへのオプトインをトリガー)したユーザーが、Metaの次のURIにリダイレクトされるようにします。
https://auth.oculus.com/sso/?redirect_uri={yourLoginURL}&organization_id={yourMetaQuestOrganizationID}
ユーザーは、必要に応じてMeta Questにログインし、アカウントをリンクすることを承認します。
次の図は、ユーザーに表示されるアカウントリンク画面の例です。

ユーザーが[アカウントのリンク]ボタンをクリックした場合に、次のURIにGETリクエストを送信してリダイレクトします。
https://auth.oculus.com/sso/?redirect_uri=https://someloginuri.com/oa&organization_id=1234567812345678
Meta QuestによってユーザーがログインURIに転送される際には、URIにbase-64エンコードされたJSONが付加されます。このJSONには、OAuthトークンの取得に使用できる認証コードとscoped user IDが含まれています。URIは次のように構造化されています。
{yourLoginURL}#{base-64EncodedJSON}
以下はその例です。
https://someloginuri.com/oa#1234ImCiAib3JnLXNjb3BlZF9pZCI6ICIxMjM0NTY3ODEyMzQ1Njc4Igp9
これをデコードした結果は次のようになります。
{
"code":"somecode",
"org-scoped_id": "1234567812345678"
}
更新トークンをリクエストする場合に備えて、ユーザーIDをシステムに必ず保存してください。
4.コードとユーザーID、および認証情報を送信してトークンをリクエストする
前の手順で取得した情報とアプリID、app secretを使用して、OAuthトークンをリクエストします。アプリIDとアプリシークレットは、
開発者ダッシュボードの
[Development (開発)] >
[API]にあります。APIページからapp secretにアクセスするには管理者アカウントを使用する必要があります。
次のようなメッセージを送信します。
URI: https://graph.oculus.com/sso_authorize_code
メソッド: POST
メッセージの例:
POST https://graph.oculus.com/sso_authorize_code?code=somecode
&access_token=OC|client-id|client-secret&org_scoped_id=user-id-for-your-org
パラメーター:
| パラメーター | パラメータータイプ | 説明 |
|---|
code
| クエリ | 手順3のデコード結果から取得したアクセスコード。 |
access_token
| クエリ | OC|APPID|APPSECRET形式のトークン。 Meta Horizon開発者ダッシュボードの [Development (開発)] > [API] > [App Credentials (アプリ認証情報)]で確認できる、アプリIDとアプリシークレットが含まれています。 |
org_scoped_id
| クエリ | 手順3のデコード結果から取得したスコープ識別子。 |
成功した場合の応答の例:
JSON応答に、30日間有効のOAuthトークンと更新コードが含まれています。
{
"oauth_token": "some-oauth-token",
"refresh_code": "some-refresh-code"
}
5.OAuthトークンを使用してユーザーのIDとエイリアスを取得する
前の手順で取得したOAuthトークンを使用して、ユーザーのIDとエイリアスをリクエストします。次のようなメッセージを送信します。
メソッド: GET
URI: https://graph.oculus.com/me
メッセージの例:
GET https://graph.oculus.com/me?access_token=some-access-token&fields=id,alias
パラメーター:
| パラメーター | パラメータータイプ | 説明 |
|---|
access_token
| クエリ | 手順4で取得したOAuthトークン。 |
fields
| クエリ | 取得するユーザーフィールドのコンマ区切りリスト。使用できる値はidとaliasのみです。 |
成功した場合の応答の例:
JSON応答に、ユーザーの組織のIDとMeta Questのエイリアスが含まれています。
{
"id": "1234567812345678",
"alias": "gamertag"
}
ユーザーのOAuthトークンを保存しておき、そのユーザーの代わりにMeta Questへのリクエストを作成する際に使用します。
30日間のOAuthトークンの期限が切れたら、新しいトークンを取得します。次のようなメッセージを送信します。
メソッド: POST
URI: https://graph.oculus.com/sso_authorize_refresh_code
メッセージの例:
POST https://graph.oculus.com/sso_authorize_refresh_code?
access_token=AppSecretToken&org_scoped_id=some-id&refresh_code=refresh-code
パラメーター:
| パラメーター | パラメータータイプ | 説明 |
|---|
access_token
| クエリ | OC|APPID|APPSECRET形式のトークン。 Meta Horizon開発者ダッシュボードの [Development (開発)] > [API] > [App Credentials (アプリ認証情報)]で確認できる、アプリIDとアプリシークレットが含まれています。 |
org_scoped_id
| クエリ | ログインURLへのリクエストで送信される組織のID。 |
refresh_code
| クエリ | 手順4の更新コード。 |
成功した場合の応答の例:
JSON応答に、30日間有効のOAuthトークンと別の更新コードが含まれています。
{
"oauth_token": "some-oauth-token",
"refresh_code": "some-refresh-code"
}