如何通过Graph API创建含关联术语的SharePoint列表项?遇400错误
你之前的两种写法都不符合Graph API对托管元数据字段的格式要求,正确的写法如下:
单值托管元数据字段的有效Payload格式
必须指定@odata.type标识字段类型,同时提供术语的TermGuid和Label:
payload = { "fields": { "Title": "My item", "CustomMetadataField": { "@odata.type": "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference", "TermGuid": "你的术语GUID", "Label": "对应的术语标签" } } }
多值托管元数据字段的有效Payload格式
如果字段允许多选,需要用数组形式,同时声明集合类型的@odata.type:
payload = { "fields": { "Title": "My item", "CustomMetadataField@odata.type": "#Collection(Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference)", "CustomMetadataField": [ { "@odata.type": "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference", "TermGuid": "术语1的GUID", "Label": "术语1标签" }, { "@odata.type": "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference", "TermGuid": "术语2的GUID", "Label": "术语2标签" } ] } }
错误原因说明
- 第一种写法缺少
@odata.type,Graph API无法识别这是托管元数据字段,直接返回400错误 - 第二种用
-1;#Label|uuid的格式是SharePoint传统REST API的语法,Graph API不兼容,因此无法生效 - 额外注意:你代码里出现了
CustomMetadataField和CustomMetaDataField(少了一个t),这大概率是笔误,必须和列表字段的内部名称完全一致,否则也会导致请求失败
内容的提问来源于stack exchange,提问作者wm3ndez
相关产品推荐
相关产品推荐

