開発
開発
プラットフォームを選択

サーバー間通信の基本

一部のプラットフォーム機能は、サーバー間(S2S) REST API呼び出しを使用して、クライアントデバイスから送信するのに相応しくないアクションを実行します。これらのAPIは、バックエンドサーバーとMeta Horizonプラットフォームの間のインタラクションをセキュアに保つために提供されています。
例えば、アプリ内購入の安全性を強化したり、不正行為を防止したりするために使われます。
個々のS2S呼び出しの詳細については、機能セクションのリンクを参照してください。
: 旧バージョンのUnityには互換性の問題があります。旧バージョンのUnityでは.NET 3.5以前が使用されていますが、それらのバージョンの.NETではSHA2を使用するSSL証明書がサポートされていません。SHA1には脆弱性があるため、最新のSSL証明書にはSHA2が使用されています。UnityクライアントがS2S APIを直接使用しようとすると、APIで使用されているSHA2ベースのSSL証明書を復号化できないため、応答メッセージを信頼することができません。

メッセージの基本

サーバー間メッセージについて、いくつかの基本情報を理解しておく必要があります。

サーバー間APIの要件

これらのAPIを呼び出すには、以下の要件を満たす必要があります。

エンドポイント

すべてのサーバー間リクエストを、以下のエンドポイントに対して行います。
https://graph.oculus.com

アクセストークン

有効なサーバーリクエストとして、または特定のユーザーに代わって認証するすべてのリクエストにアクセストークンを含めてください。アクセストークンは以下のいずれかです。

アプリ認証情報

アプリ認証情報は、サーバーのバックエンドを信頼できるリソースとして認証します。この認証情報は、クライアント側のどのアプリとも共有しないでください。
アプリ認証情報が含まれるアクセストークンには、Meta Horizon開発者ダッシュボードのAPIのページにあるアプリIDapp secretが、OC|$APPID|$APPSECRETの形式で表されています。
認証情報が不正にアクセスされた場合、または新しいAPI認証情報が必要な場合は、新たにapp secretを生成してください。app secretを変更すると、以前のアクセス許可が取り消されます。app secretにアクセスするには、管理者アカウントが必要です。
注: 以前のバージョンのUnityはNET 3.5以前を利用しており、SHA2を利用するSSL証明書をサポートしておらず、サーバー間リクエストに利用することができません。

ユーザーアクセストークン

ユーザーアクセストークンは、ユーザーに代わって行われるリクエストが有効かどうかを認証します。このトークンタイプは、アクションが特定のユーザーに関連する場合に使います。例えば、サーバーでホストされたマルチプレイヤーマッチの結果を、クライアントが権限を持つリーダーボードに反映させる場合などです。各ユーザーに対して、リーダーボードを更新するリクエストをサーバーから送信する際には、そのユーザーのアクセストークンを使用してサーバーを認証します。
Users.GetAccessToken()メソッドでユーザートークンを取得します。
トークンは応答として返され、クライアントからサーバーに渡すことができます。ユーザーアクセストークンには、FRLまたはOCと、FRL12342GhFccWvUBxPMR4KXzM5s2ZCMp0mlWGq0ZBrOMXyjh4EmuAPvaXiMCAMV9okNm9DXdUA2EWNplrQのような長い英数字文字列が含まれます。
さらに、Meta Horizon開発者ダッシュボードのAPIのページの[User Token (ユーザートークン)]セクション(左のナビゲーションバーにある)で、テスト目的のユーザートークンを取得することができます。

アプリID

一部のサーバー呼び出しにはアプリIDが必要です。これは、Meta Horizon開発者ダッシュボードのAPIのページで確認できます。

サーバー呼び出しの例

これは、ユーザーが獲得したクライアントが権限を持つアチーブメントをロック解除する方法を示すサーバーAPI呼び出しの一例です。この例では、すでにアチーブメントを作成し、フックをアプリに連携していると仮定します。詳しくは、アチーブメントをご覧ください。
  1. ユーザーのIDを取得する - ユーザーの代わりにMeta Quest APIを呼び出すには、そのユーザーを識別するMetaアカウントを含める必要があります。UnityでPlatform.Users.GetLoggedInUserを呼び出して、IDを取得します。ユーザーのovrIDとして返されます。
  2. 信頼できるサーバーに情報を渡す - Metaアカウントを取得したら、更新またはロック解除するアチーブメントのアカウントとapi_nameをクライアントデバイスからサーバーに渡します。
  3. アプリアクセストークンを作成する - 開発者ダッシュボード[開発] > [API]セクションから取得した次の資格情報を使用します。
    • アプリID - 1234567898014273
    • App Secret - 5f8730a4n51c5f8v8122aaf971b937e7
これで、アプリアクセストークンを、OC|1234567898014273|5f8730a4n51c5f8v8122aaf971b937e7として作成できます。
  1. APIを呼び出してアチーブメントのロックを解除する - クライアントデバイスから情報を取得して、アプリアクセストークンを作成したら、API呼び出しを送信してアチーブメントのロックを解除します。
curl -d "access_token=OC|$APP_ID|$APP_SECRET" -d "api_name=MY_SIMPLE_ACHIEVEMENT" -d "force_unlock=true" https://graph.oculus.com/$USER_ID/achievements
リクエストが成功した場合の応答は、次のとおりです。
{ "id":"$USERID", "api_name":"MY_SIMPLE_ACHIEVEMENT", "just_unlocked":true }
その後、アチーブメントが正常にロック解除されたことを示すメッセージをクライアントに返すことができます。

サーバーAPIを利用する機能

サーバーAPIを提供しているプラットフォームソリューションのリストを以下に示します

エラー応答とHTTPコード

Meta Quest S2S REST APIは、標準のHTTPステータスコードをサポートしており、このコードによって問題を特定できます。
コードステータス
400
Bad Request (間違ったリクエスト)
401
Unauthorized Request (無許可のリクエスト)
403
Forbidden Request (禁止されたリクエスト)
404
Not Found (未検出)
500
Internal Server Error (内部サーバーエラー)
ナビゲーションロゴ
日本語
© 2026 Meta