Power Automate调用SharePoint HTTP请求报错:__metadata参数不存在
错误原因
你遇到的The parameter __metadata does not exist in method GetByTitle错误,核心问题是请求方法或参数位置错误:
GetByTitle是SharePoint REST API的GET方法,仅用于获取字段对象,这个方法不需要__metadata参数,若你在URL里附带该参数,就会触发400错误。- 更新字段属性必须使用
MERGE请求而非GET,且__metadata应放在请求体中,不能作为URL参数传递。
正确操作步骤
1. 设置请求方法
在Power Automate的「Send an HTTP request to SharePoint」操作中,将Method设置为MERGE。
2. 配置请求URL
使用正确的字段获取URL,不要添加多余参数:
_api/web/lists/GetByTitle('Project Scorecards')/Fields/getbytitle('ReportMonthYear')
3. 添加必要请求头
在Headers中添加以下键值对:
Accept:application/json;odata=verboseContent-Type:application/json;odata=verboseIF-MATCH:*(允许覆盖现有字段配置,避免并发冲突)
4. 编写正确的请求体
在Body中传入包含__metadata和目标属性的JSON,日期字段的DefaultValue需为字符串格式的日期:
{ "__metadata": { "type": "SP.FieldDateTime" }, "DefaultValue": "2023-08-01" }
补充说明
- 注意字段类型对应的
__metadata.type:如果是其他类型字段,要替换成对应类型,比如单行文本是SP.FieldText,数字是SP.FieldNumber。 - 确保操作账号拥有SharePoint列表的编辑权限,权限不足也可能引发类似错误。
内容的提问来源于stack exchange,提问作者Damian
相关产品推荐
相关产品推荐

