次の方法で共有


REST を通じてユーザーのプレゼンスを更新する

このトピックでは、リッチ プレゼンス文字列を更新するためのサンプル コードを提供します。

タイトルでリッチ プレゼンス文字列を更新するために、JSON オブジェクトで適切なパラメーターを指定して Write Title URI を呼び出します。

この RESTful 呼び出しは Xbox Service API (XSAPIs) によってもラップされます。 この呼び出しに関連する API については、XblPresenceSetPresenceAsync を参照してください。

URI は次のようになります。

POST /users/xuid({xuid})/devices/current/titles/current

次のフィールドは、リッチ プレゼンス文字列を設定するためだけのものです。 その他の省略可能なフィールドは、タイトルのプレゼンスの記述に関連していますが、このトピックには記載されていません。

TitleRequest オブジェクト

プロパティ 種類 必須かどうか 説明
Activity ActivityRequest いいえ タイトル内情報 (リッチ プレゼンスおよびメディア情報 (使用可能な場合)) が記述されたレコード

ActivityRequest オブジェクト

プロパティ 種類 必須かどうか 説明
richPresence RichPresenceRequest いいえ 使用するリッチ プレゼンス文字列の friendlyName。

RichPresenceRequest オブジェクト

プロパティ 種類 必須かどうか 説明
Id String はい 使用するリッチ プレゼンス文字列の friendlyName。
Scid String はい リッチ プレゼンス文字列が定義されている場所を示す scid

たとえば、xuid が 12345 のユーザーのリッチ プレゼンスを更新する場合、呼び出しは次のようになります。

POST /users/xuid(12345)/devices/current/titles/current

次の JSON 本文があります。

          {
            activity:
            {
              richPresence:
              {
                id:"playingMap",
                scid:"0000-0000-0000-0000-01010101"
              }
            }
          }

ラッパー API を使用して、XblPresenceSetPresenceAsyncを呼び出すことができます。

Xbox プレイヤー データを最新の状態に維持している場合、空白に入力されるデータが変更されるたびにリッチ プレゼンス文字列をリセットする必要はありません。 前の例では、現在のマップが使用されています。

ユーザーが文字列を読み取ろうとしたときに、プレゼンスが Xbox プレイヤー データのデータをルックアップして、現在の値を入力します。 ユーザーがマップを切り替えた場合でも、適切なイベントを Xbox プレイヤー データに送信している限り、ゲームのリッチ プレゼンス文字列をリセットする必要はありません。

データが Xbox プレイヤー データ システムを通じて移行されるまで、数秒かかる場合があります。

誰かがユーザー 12345 のリッチ プレゼンスを読み取ろうとすると、サービスは要求されているロケールを確認し、文字列を適切にフォーマットしてから返します。 ここでは、ユーザーが en-US の文字列を読み取ろうとしているものとします。

リッチ プレゼンスの読み取りは次のようになります。

GET /users/xuid(12345)?level=all

この呼び出しの詳細については、GET (/users/xuid({xuid})) を参照してください。

このラッパー API は XblPresenceGetPresenceAsync または XblPresenceGetPresenceForMultipleUsersAsync のいずれかです。

前の例では、xuid が 12345 のユーザーの PresenceRecord を要求しました。 また、詳細レベルを all にするよう要求しました。

all を指定しなかった場合、リッチ プレゼンスは返されません。 代わりに、all は JSON 応答で以下を返します。

          {
            xuid:"12345",
            state:"online",
            devices:
            [
              {
                type:"D",
                titles:
                [
                  {
                    id:"12345",
                    name:"Buckets are Awesome",
                    lastModified:"2022-08-17T07:15:23.4930000",
                    placement: "full",
                    state:"active",
                    activity:
                    {
                      richPresence:"Playing on map:Mountains"
                    }
                  }
                ]
              }
            ]
          }