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

# POST (/users/xuid(xuid)/lists/PINS/{listname})

> POST (/users/xuid(xuid)/lists/PINS/{listname})

# POST (/users/xuid(xuid)/lists/PINS/{listname})

根据查询字符串参数 **insertIndex** 将项插入到列表中的指定索引位置。
这些 URI 的域为 `eplists.xboxlive.com`。

* [备注](#ID4EY)
* [URI 参数](#ID4ETB)
* [查询字符串参数](#ID4E5B)
* [授权](#ID4EZC)
* [HTTP 状态代码](#ID4EGD)
* [必需的请求标头](#ID4EEAAC)
* [请求示例](#ID4E1BAC)
* [响应正文](#ID4EPCAC)

## 备注

此调用会根据查询字符串参数 **insertIndex**(默认为 0 或列表开头)将项插入到列表中的相应索引位置。请求正文中的所有项都将插入到列表中的该位置。如果 **insertIndex** 大于现有列表中的项数,则新项将被插入到末尾。

要插入的项必须包含功能规范中所指示的必填字段;否则,将返回 HTTP 400。同样,如果插入结果将超过列表的最大大小(按列表类型定义),则将返回 HTTP 400 并且不会插入任何内容。

如果*不是*将项插入到列表的开头或末尾,则请求中需要包含 **If-Match:versionNumber** 标头。如果插入的位置是开头或末尾,则该标头是可选的。如果存在,无论插入位置在何处,都将验证该标头。标头中的 **VersionNumber** 为列表的当前版本号。如果未包含且为必填,或者与当前列表版本号不匹配,则将返回 HTTP 412(precondition failed)状态代码,并且响应正文将包含该列表的最新元数据(其中包含当前版本号)。这样做是为了防止来自不同客户端的更新相互覆盖。

请注意,此调用不是幂等的;使用相同数据重复调用可能会导致多次插入。但是,由于当前没有列表支持重复项,因此重复调用可能会返回 HTTP 400 代码。

## URI 参数

| 参数 | 类型 | 说明 |
| - | - | - |
| xuid | string | XBOX 用户 ID (XUID)。 |
| listtype | string | 列表的类型(表示其用途以及行为方式)。对于这些相关方法,始终为 "PINS"。 |
| listname | string | 列表的名称(表示对给定 listtype 的哪个列表进行操作)。对于 Pins 中的项,始终为 "XBLPins"。 |

## 查询字符串参数

| 参数 | 类型 | 说明 |
| - | - | - |
| insertIndex | string | 可选。定义要在何处插入项。支持的值:0、正整数以及 "end"。任何大于列表项数的索引值都将把新项添加到列表底部,而不会在列表中插入“空白”位置。默认值:0。 |

## 授权

此调用期望在 **Authorization** 标头中传入 XSTS SAML 令牌。该 SAML 令牌中必须存在 Xuid 声明以标识调用者。此值用于确定调用者是否具有访问相关列表数据的权限。列表本身也将由 Xuid 标识,并将包含在列表的 URI 中。基于此机制,将来我们可能支持对列表的共享访问,但目前尚不支持此功能。当前,用户访问的所有列表都是其自己的,并且没有共享访问。因此,URI 中的 Xuid 必须与 SAML 声明令牌中的 Xuid 相匹配。

> **注意:**\
> 目前同时支持 XBL Auth 2.0 和 3.0 令牌。

## HTTP 状态代码

服务针对使用此方法对此资源发出的请求,返回本节中的某个状态代码。有关与 XBOX Live 服务一同使用的标准 HTTP 状态代码的完整列表,请参见[标准 HTTP 状态代码](https://devdocs.xbox.com/zh-CN/reference/live/rest/additional/httpstatuscodes)。

| 代码 | 原因短语 | 说明 |
| - | - | - |
| 200 | OK | 请求已成功完成。响应正文应包含所请求的资源(对于 GET)。POST 和 PUT 请求将收到最新的列表元数据(列表版本、计数等)。 |
| 201 | Created | 已创建新列表。这是在向列表进行初始插入时返回的。响应包含列表的最新元数据,并且位置标头包含该列表的 URI。 |
| 304 | Not Modified | 对 GET 返回。表示客户端已拥有该列表的最新版本。服务将 **If-Match** 标头中的值与列表版本进行比较。如果相等,则返回 304 且不带任何数据。 |
| 400 | Bad Request | 请求格式错误。可能是 URI 或查询字符串参数的值或类型无效。也可能是由于缺少必需的参数或数据值,或者请求指示了缺少或无效的 API 版本。请参见 **X-XBL-Contract-Version** 标头。 |
| 401 | Unauthorized | 请求需要用户身份验证。 |
| 403 | Forbidden | 不允许该用户或服务发出请求。 |
| 404 | Not Found | 调用者无权访问该资源。这表示尚未创建这样的列表。 |
| 412 | Precondition Failed | 表示列表的版本已更改,并且修改请求失败。修改请求是插入、更新或移除操作。服务会检查 **If-Match** 标头中的列表版本。如果与列表的当前版本不匹配,则该操作失败,并返回此代码以及当前列表的元数据(包括当前版本)。 |
| 500 | Internal Server Error | 由于服务器端错误,服务正在拒绝请求。 |
| 501 | Not Implemented | 调用者请求了尚未在服务器上实现的 URI。(当前仅在对未列入允许列表的列表名称发出请求时使用。) |
| 503 | Service Unavailable | 服务器拒绝请求,通常是由于负载过大。经过延迟后(请参见 **Retry-after** 标头),可以重试请求。 |

## 必需的请求标头

| 标头 | 说明 |
| - | - |
| Authorization | 包含用于对请求进行身份验证和授权的 STS 令牌。必须是来自 XSTS 服务的令牌,并且包含 XUID 作为其中一项声明。 |
| X-XBL-Contract-Version | 指定正在请求的 API 版本(正整数)。Pins 支持版本 2。如果缺少此标头或值不受支持,则服务将返回 400 - Bad request,状态描述为 "Unsupported or missing contract version header"。 |
| Content-Type | 指定请求/响应正文的内容是 json 还是 xml。支持的值为 "application/json" 和 "application/xml"。 |
| If-Match | 发出修改请求时,此标头必须包含列表的当前版本号。修改请求使用 PUT、POST 或 DELETE 谓词。如果 "If-Match" 标头中的版本与列表的当前版本不匹配,则请求将被拒绝并返回 HTTP 412 - precondition failed 代码。(可选)也可用于 GET,如果存在并且传入的版本与当前列表版本匹配,则不返回任何列表数据并返回 HTTP 304 - Not Modified 代码。 |

## 请求示例

**ContentType**、**ItemId** 或 **ProviderId**、**Provider** 和 **Locale** 为必填项。

```cpp theme={null}
{"Items":
  [{
    "ContentType": "Movie",
    "ItemId": "3a5095a5-eac3-4215-944d-27bc051faa47",
    "ProviderId": "",
    "Provider": "",
    "ImageUrl": "http://www.bing.com/thumb/get?bid=Gw%2fsjCGSS4kAAQ584x800&bn=SANGAM&fbid=7wIR63+Clmj+0A&fbn=CC", 
    "AltImageUrl": null, 
    "Title": "The Dark Knight", 
    "SubTitle": null, 
    "Locale": "en-us",
    "DeviceType": "XboxOne"
  }]}
      
```

## 响应正文

### 响应示例

```cpp theme={null}
{
  "ListVersion":  1,
  "ListCount":  1,
  "MaxListSize": 200,
  "AllowDuplicates": "true",
  "AccessSetting":  "OwnerOnly"
} 
         
```

## 另请参阅

##### 父主题

[/users/xuid(xuid)/lists/PINS/{listname}](https://devdocs.xbox.com/zh-CN/reference/live/rest/uri/lists/uri-usersxuidlistspinslistname)


## Related topics

- [XblSocialSubmitReputationFeedbackAsync](https://devdocs.xbox.com/fr-CA/reference/live/xsapi-c/social_c/functions/xblsocialsubmitreputationfeedbackasync.md)
- [XblAchievementsManagerUpdateAchievement](https://devdocs.xbox.com/es/reference/live/xsapi-c/achievements_manager_c/functions/xblachievementsmanagerupdateachievement.md)
