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"
}
}
]
}
]
}