如何通过Graph API创建含人员选择器字段的SharePoint列表项?
核心问题分析
你遇到的400错误核心原因是提交的JSON负载格式不符合Graph API规范——所有列表字段必须嵌套在fields对象中,且人员选择器字段的提交格式和GET返回的格式存在差异。
正确的请求负载格式
创建包含人员选择器字段的列表项时,需遵循以下规则:
- 所有字段必须包裹在
fields顶层对象内 - 人员选择器字段使用其内部名称(你的场景是
Tested_x0020_By) - 字段值为数组(支持多选,单选场景也需用数组包裹),数组元素仅需包含
LookupId(站点用户ID)或Email(用户邮箱)即可,无需附带LookupValue
示例1:使用LookupId提交
{ "fields": { "Title": "新测试项", "Tested_x0020_By": [ { "LookupId": 123 } ] } }
示例2:使用Email提交(无需提前获取LookupId)
{ "fields": { "Title": "新测试项", "Tested_x0020_By": [ { "Email": "John.Doe@mycompany.com" } ] } }
额外注意事项
- 确认
LookupId是目标用户在当前SharePoint站点中的有效用户ID,而非Azure AD全局ID - 确保你的Graph API权限包含
Sites.Write.All或更精细的站点列表写入权限,同时具备读取用户信息的权限 - 如果是多选人员字段,只需在数组中添加多个
{"LookupId": xxx}或{"Email": xxx}对象即可
内容的提问来源于stack exchange,提问作者NittanyNW
相关产品推荐
相关产品推荐

