> ## 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.

# PUT (/serviceconfigs/{scid}/sessiontemplates/{sessionTemplateName}/sessions/{sessionName})

> PUT (/serviceconfigs/{scid}/sessiontemplates/{sessionTemplateName}/sessions/{sessionName})

# PUT (/serviceconfigs/{scid}/sessiontemplates/{sessionTemplateName}/sessions/{sessionName})

セッションを作成、更新、または参加します。

> **重要:**\
> この URI メソッドでは、すべてのリクエストにヘッダー要素 X-Xbl-Contract-Version: 104/105 以降が必要です。

* [解説](#ID4ET)
* [URI パラメーター](#ID4EYB)
* [HTTP ステータス コード](#ID4EFC)
* [リクエスト本文](#ID4EOC)
* [レスポンス本文](#ID4E4C)

## 解説

この HTTP/REST メソッドは、送信される同じ JSON リクエスト本文テンプレートのサブセットに応じて、セッションを作成、参加、または更新します。成功時は、サーバーから返されるレスポンスを含む **MultiplayerSession** オブジェクトを返します。その属性は、渡された **MultiplayerSession** オブジェクトの属性と異なる場合があります。このメソッドは **Microsoft.Xbox.Services.Multiplayer.MultiplayerService.WriteSessionAsync** によってラップできます。

セッションの作成および更新操作では、適用する変更を表す application/json 本文を持つ PUT を使用します。これらの操作はべき等で、同じ変更を複数回適用しても追加の効果はありません。

JSON リクエスト本文はセッション データ構造を反映しています。すべてのフィールドおよびサブフィールドはオプションです。

PUT メソッドのセッション作成または参加モードのワイヤー形式を以下に示します。

> **注意:**\
> このパターンを使用する際は注意してください。更新はセッションの現在の状態に関係なく、そのまま適用されます。

```cpp theme={null}
PUT /serviceconfigs/00000000-0000-0000-0000-000000000000/sessiontemplates/quick/sessions/00000000-0000-0000-0000-000000000001 HTTP/1.1
         Content-Type: application/json

```

PUT メソッドのセッション更新モードのワイヤー形式を以下に示します。

```cpp theme={null}
PUT /serviceconfigs/00000000-0000-0000-0000-000000000000/sessiontemplates/quick/sessions/00000000-0000-0000-0000-000000000001 HTTP/1.1
         Content-Type: application/json

```

セッション プロパティを更新する PUT メソッドのワイヤー形式を以下に示します。これは、以下のオブジェクトのみをプロパティとして持つ本文で、セッション URI に対して PUT 操作を行うことと同等です。相違点は、セッションが存在しない場合、この操作はエラー コード 404 Not Found を返す点です。この操作は If-Match ヘッダーをサポートします。

```cpp theme={null}
PUT /serviceconfigs/00000000-0000-0000-0000-000000000000/sessiontemplates/quick/sessions/00000000-0000-0000-0000-000000000001/properties HTTP/1.1
         Content-Type: application/json

         { "system": { }, "custom": { } }

```

## URI パラメーター

\| パラメーター | 型 | 説明 |
\| --- | --- | --- | --- | --- |
\| scid| GUID| サービス構成識別子 (SCID)。セッション識別子のパート 1。|
\| sessionTemplateName| string| セッション テンプレートの現在のインスタンスの名前。セッション識別子のパート 2。|
\| sessionName| GUID| セッションの一意の ID。セッション識別子のパート 3。|

## HTTP ステータス コード

サービスは、MPSD に適用される HTTP ステータス コードを返します。

## リクエスト本文

以下は、セッションを作成または参加するためのサンプル リクエスト本文です。以下に示すリクエスト本文のメンバーはオプションです。その他の可能なメンバーは、リクエストで使用できません。

\| メンバー | 型 | 説明 |
\| --- | --- | --- | --- | --- | --- | --- | --- |
\| constants| object| セッション テンプレートとマージされ、セッションの定数を生成する読み取り専用の設定。 |
\| properties | object | セッション プロパティにマージされる変更。|
\| members.me | object| 上位レベルのカウンターパートと同じように機能する定数とプロパティ。PUT メソッドではユーザーがセッションのメンバーである必要があり、必要に応じてユーザーが追加されます。"me" が null として指定された場合、リクエストを行っているメンバーはセッションから削除されます。 |
\| members | object| セッションに追加するユーザーを表すその他のオブジェクトで、ゼロベースのインデックスをキーとします。リクエスト内のメンバー数は、セッションに既にメンバーが含まれている場合でも、常に 0 から開始されます。メンバーは、リクエストに出現する順序でセッションに追加されます。メンバー プロパティは、それが属するユーザーによってのみ設定できます。 |
\| servers | object| セッションに関連付けられたサーバー参加者のセットに対する更新および追加を示す値。サーバーが null として指定された場合、そのサーバー エントリはセッションから削除されます。 |

```cpp theme={null}
{
  "properties": {
    "custom": {"KANWE": "MGMSY"},
    "system": {}
  },
  "constants": {
    "custom": {},
    "system": {"visibility": "open"}
  },
  "members": {
    "reserve_0": {
    "constants": {
      "custom": {"type": "leader"},
      "system": {"xuid": "5500461"} }}
   }
}

```

## レスポンス本文

セッションを作成または参加するためのサンプル レスポンス本文:

```cpp theme={null}
{
  "contractVersion": 104,
  "correlationId": "0FE81338-EE96-46E3-A3B5-2DBBD6C41C3B",
  "nextTimer": "2009-06-15T13:45:30.0900000Z",

  "initializing": {
    "stage": "measuring",
    "stageStartTime": "2009-06-15T13:45:30.0900000Z",
    "episode": 1
  },

  "hostCandidates": [ "ab90a362", "99582e67" ],

  "constants": {
    "system": {"visibility": "open"},
    "custom": {}
  },

  "properties": {
     "system": { "turn": [] },
     "custom": { "myProperty": "myValue" }
  },

  "members": {
      "1": {
        "properties": {
        "system": { },
        "custom": { }
      },

      "constants": {
        "system": { "xuid": "5500461" },
        "custom": { }
      }

      "gamertag": "stacy",
      "deviceToken": "9f4032ba7",
      "reserved": true,
      "activeTitleId": "8397267",
      "joinTime": "2009-06-15T13:45:30.0900000Z",
      "turn": true,
      "initializationFailure": "latency",
      "initializationEpisode": 1,
      "next": 4
    },
  },

  "membersInfo": {
      "first": 1,
      "next": 4,
      "count": 1,
      "accepted": 0
  },

  "servers": {
      "name": {
        "constants": { },
        "properties": { }
      }
  }
}

```

## 関連項目

##### 親

[/serviceconfigs/{scid}/sessiontemplates/{sessionTemplateName}/sessions/{sessionName}](/ja-jp/reference/live/rest/uri/sessiondirectory/uri-serviceconfigsscidsessiontemplatessessiontemplatenamesessionssessionname)


## Related topics

- [XblMultiplayerSessionReferenceUri](/reference/live/xsapi-c/multiplayer_c/structs/xblmultiplayersessionreferenceuri.md)
- [XblMultiplayerSessionReference](/reference/live/xsapi-c/multiplayer_c/structs/xblmultiplayersessionreference.md)
