> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# REST を介したユーザーのプレゼンスの更新

> TitleRequest、ActivityRequest、RichPresenceRequest の各フィールドを含む Write Title URI を使って XBOX Live のリッチ プレゼンスを更新する REST リファレンスです。

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

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

この RESTful 呼び出しは、XBOX Service API (XSAPI) によってもラップされています。
この呼び出しに関連する API については、[XblPresenceSetPresenceAsync](/reference/live/xsapi-c/presence_c/functions/xblpresencesetpresenceasync) を参照してください。

URI は以下のようになります。

```uri theme={null}
POST /users/xuid({xuid})/devices/current/titles/current
```

以下のフィールドはリッチ プレゼンス文字列の設定専用です。
その他のオプション フィールドはタイトルのプレゼンスの書き込みに関連していますが、このトピックでは一覧化されていません。

## TitleRequest オブジェクト

| プロパティ    | 型               | 必須  | 説明                                             |
| -------- | --------------- | --- | ---------------------------------------------- |
| Activity | ActivityRequest | いいえ | タイトル内情報 (リッチ プレゼンスおよび利用可能な場合はメディア情報) を記述するレコード |

## ActivityRequest オブジェクト

| プロパティ        | 型                   | 必須  | 説明                      |
| ------------ | ------------------- | --- | ----------------------- |
| richPresence | RichPresenceRequest | いいえ | 使用するリッチ プレゼンス文字列のフレンドリ名 |

## RichPresenceRequest オブジェクト

| プロパティ | 型      | 必須 | 説明                             |
| ----- | ------ | -- | ------------------------------ |
| Id    | String | はい | 使用するリッチ プレゼンス文字列のフレンドリ名        |
| Scid  | String | はい | リッチ プレゼンス文字列が定義されている場所を示す scid |

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

```uri theme={null}
POST /users/xuid(12345)/devices/current/titles/current
```

以下の JSON ボディを持ちます。

```json theme={null}
          {
            activity:
            {
              richPresence:
              {
                id:"playingMap",
                scid:"0000-0000-0000-0000-01010101"
              }
            }
          }
```

ラッパー API を使用する場合、これは [XblPresenceSetPresenceAsync](/reference/live/xsapi-c/presence_c/functions/xblpresencesetpresenceasync) への呼び出しになります。

XBOX Player Data を最新の状態に保っている場合、データが変わるたびに空欄を埋めるためにリッチ プレゼンス文字列をリセットする必要はありません。
前の例では、現在のマップが使用されています。

プレゼンスは、ユーザーが文字列を読み取って現在の値を埋めようとしたときに、XBOX Player Data からデータを検索します。
ユーザーがマップを切り替えても、XBOX Player Data に適切なイベントを送信している限り、ゲーム内でリッチ プレゼンス文字列をリセットする必要はありません。

XBOX Player Data システム内でデータが移行するまで数秒かかることがあります。

誰かがユーザー 12345 のリッチ プレゼンスを読み取ろうとすると、サービスは要求されているロケールを確認し、返す前に文字列を適切に整形します。
この場合、ユーザーが en-US 文字列を読み取ろうとしていると仮定します。

リッチ プレゼンスの読み取りは以下のように機能します。

```uri theme={null}
GET /users/xuid(12345)?level=all
```

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

これのラッパー API は、[XblPresenceGetPresenceAsync](/reference/live/xsapi-c/presence_c/functions/xblpresencegetpresenceasync) または [XblPresenceGetPresenceForMultipleUsersAsync](/reference/live/xsapi-c/presence_c/functions/xblpresencegetpresenceformultipleusersasync) のいずれかです。

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

`all` を指定しないと、リッチ プレゼンスは返されません。代わりに、`all` は以下を JSON レスポンスで返します。

```json theme={null}
          {
            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"
                    }
                  }
                ]
              }
            ]
          }
```


## Related topics

- [リッチ プレゼンスのサンプル コード](/ja-jp/services/xbox-services/community/presence/how-to/live-presence-howto-nav.md)
- [XSAPI C を介したユーザーのプレゼンスの更新](/ja-jp/services/xbox-services/community/presence/how-to/live-updating-user-presence.md)
- [ユーザーのプレゼンスの取得](/ja-jp/services/xbox-services/community/presence/how-to/live-getting-a-users-presence.md)
- [ハウツー](/ja-jp/services/xbox-services/community/presence/how-to/index.md)
- [XblPresenceStopTrackingUsers](/ja-jp/reference/live/xsapi-c/presence_c/functions/xblpresencestoptrackingusers.md)
