Power Automate中用HTTP请求更新SharePoint日历遇400错误求助
问题解决思路
一、优先推荐更简单的替代方案
直接使用Power Automate内置的SharePoint - 创建项动作,无需手动编写HTTP请求:
- 选择目标SharePoint站点与「Events」列表
- 直接映射休假请求的对应字段(标题、开始日期、结束日期、类别等),动作会自动处理字段格式、权限验证等问题,彻底规避手动构造JSON的各类错误。
二、若坚持使用HTTP请求,需修复以下核心错误:
1. URI引号格式错误
错误示例:_api/web/lists/getByTitle(‘Events’)/items
问题:使用了中文单引号‘’,SharePoint API仅识别英文单引号''
修正后:_api/web/lists/getByTitle('Events')/items
2. 请求头拼写错误
错误示例:"Content-Type": "applications/json;odata=nometadata"
问题:applications多了多余的s,且Accept头里的制表符\t会干扰格式解析
修正后请求头:
{ "Accept": "application/json;odata=nometadata", "Content-Type": "application/json;odata=nometadata" }
3. 请求Body的JSON语法与格式错误
- 日期格式:
EventDate和EndDate需为ISO标准字符串(如"2023-05-15T00:00:00Z"),原代码中存在多余单引号(2023-05-15'')的语法错误 fAllDayEvent:需为布尔值true,而非字符串'true'- 注释:JSON不支持
//格式的注释,需全部删除
修正后的Body示例:
{ "__metadata": { "type": "SP.Data.EventsListItem" }, "fAllDayEvent": true, "EventDate": "2023-05-15T00:00:00Z", "EndDate": "2023-05-16T00:00:00Z", "Title": "Test Event from Flow: IR", "Category": "SICK", "Description": "" }
4. 确认Metadata类型正确性
SP.Data.EventsListItem中的Events需与列表的内部名称一致(可能和显示名称不同),可通过访问以下地址获取正确类型:
https://MyTenant.sharepoint.com/sites/Ian_DevSandBox/_api/web/lists/getByTitle('Events')?$select=ListItemEntityTypeFullName
三、其他注意事项
- 确保Power Automate连接账号拥有「Events」列表的编辑权限
- 休假请求的日期字段需转换为UTC时间格式,避免时区偏差
内容的提问来源于stack exchange,提问作者Ian
相关产品推荐
相关产品推荐

