You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Microsoft Graph添加SharePoint列表项时遭遇400 Bad Request错误求助

排查SharePoint列表项添加400 Invalid Request错误的关键点

从你提供的信息来看,有几个非常明显的问题可能导致了这个400错误,我来逐一拆解:

1. 字段名不匹配(最可能的直接原因)

你的POST请求里使用了AccountStatus字段,但从你获取的列表列信息中,根本不存在名为AccountStatus的列——对应的列实际名称是Status(displayName也是Status)。Graph API无法识别不存在的字段名,这直接会触发"Invalid Request"错误。

你需要把请求里的"AccountStatus": "Enabled"替换为"Status": "Enabled"。

2. 内置Title字段的隐含要求

虽然列信息里标记Title字段为非必填,但SharePoint列表的内置Title字段在Graph API的某些场景下,即使设置为非必填,也需要提供一个值才能成功创建列表项。建议你在请求的Fields里添加"Title": "Fictional User 1"(或者其他合适的值)试试。

3. 日期格式的严格性

你的日期字段使用的是纯日期字符串(比如"2019-03-12"),虽然Graph API有时候能兼容这种格式,但更稳妥的做法是使用ISO 8601标准格式,比如"2019-03-12T00:00:00Z",避免因日期解析失败导致的请求错误。

4. JSON格式的正确性

从Fiddler捕获的请求里看到JSON有\"转义符,这可能是构造请求时的手动转义错误。在PowerShell中,建议使用ConvertTo-Json自动生成正确的JSON结构,避免手动拼接带来的语法问题,示例如下:

$requestBody = @{
    Fields = @{
        Status = "Enabled"
        DisplayName = "Fictional User 1"
        UserId = "67853e89-65a9-431d-a3b1-1d60ab74dc1f"
        ADObjectGuid = "56752e89-65a9-431d-a3b1-1d61ab78dc1f"
        AccountCreated = "2019-03-12T00:00:00Z"
        AADObjectId = "8df5db8d-1d7a-4b35-b498-138eef2946fa"
        AccountType = "AD-Synced"
        ADLastLogonDate = "2020-08-25T00:00:00Z"
        Title = "Fictional User 1"
    }
} | ConvertTo-Json -Depth 3

按照上面的步骤修正后,应该能解决这个400错误。如果还是有问题,可以尝试只提交最简化的字段(比如只包含Title和Status)来测试,逐步排查是否有其他字段的问题。

内容的提问来源于stack exchange,提问作者Jeremy Bradshaw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 15:08:10