无法通过图形 API 创建包含人员选择器值的 SharePoint 列表项

问题描述 投票:0回答:1

我正在尝试通过图形 API 创建一个 SharePoint 列表项,其中包括人员选择器字段以及其他几个字段。我正在使用 HTTP POST 请求将 JSON 负载传递到位于 https://graph.microsoft.com/v1.0/sites/{my_site_id}/lists/{my_list_id}/items 的正确端点。列表项有一个“测试者”字段,它是人员选择器。

只要我将此“测试者”字段留空,创建就可以顺利完成,但对于我的用例,需要填充该字段以确保审核合规性。在幕后,如果您获取现有列表项,该字段会显示标题“Tested_x0020_By”,其存在形式为:

"Tested_x0020_By": [{
            "LookupId": 123,
            "LookupValue": "John Doe",
            "Email": "[email protected]"
        }]

但是,当您尝试使用与此确切格式匹配的补丁文档来发布包含此字段的 JSON 有效负载时,它会因 HTTP 400“无效请求”而崩溃。除了“无效请求”之外,没有更多信息可以说明为什么它实际上是无效的。我尝试过传递完整的三个项目以及仅传递 LookupId。

我应该如何创建一个包含该字段数据的列表项?

HTTP POST 请求到 https://graph.microsoft.com/v1.0/sites/{my_site_id}/lists/{my_list_id}/items,其中包含上面列出的字段的 JSON 负载。预计会收到 HTTP 2XX 响应,其中包含来自 Microsoft Graph 的显示项目创建的典型信息。收到 HTTP 400“无效请求”,但没有进一步放大有关实际上无效的信息。当 JSON 负载中不包含“Tested_x0020_By”字段时,请求将成功完成。

microsoft-graph-api sharepoint-online
1个回答
0
投票

我认为有一个解决方法

LookupId
添加到人员选择器列的名称中,并仅指定数组中的查找 ID

POST https://graph.microsoft.com/v1.0/sites/{site_id}/lists/{list_id}/items
{
    "fields": {
        "[email protected]": "Collection(Edm.Int32)",
        "Tested_x0020_ByLookupId": [123]
    }
}

您需要通过添加

"[email protected]": "Collection(Edm.Int32)"

来指定字段的类型以确保 OData 能够理解它
© www.soinside.com 2019 - 2024. All rights reserved.