我正在尝试通过Graph Explorer,https://developer.microsoft.com/en-us/graph/graph-explorer(或REST API调用)更新与列表项关联的字段。对于一个字段,其值可以是术语集中的一项(托管元数据)。访问https://XXX.sharepoint.com/Lists/TaxonomyHiddenList/AllItems.aspx时,我可以看到术语集中的每个元素并获得每个termguid 。
我正在尝试使用https://graph.microsoft.com/beta/sites/XXX.sharepoint.com、FOO、BAR/drive/root/children/Test%20Document.txt之类的URL进行PATCH请求/ listItem / fields(或https://graph.microsoft.com/v1.0/sites/XXX.sharepoint.com,FOO,BAR/drive/list/items/1/fields)来标识与特定内容相关联的字段项目
要更新CakeType字段,我将请求正文设置为以下内容:
{
"CakeType": {
"Label": "Apple",
"TermGuid": "3a3ad73f-94ca-4d1e-a25c-XXXX",
"WssId": -1
}
}
Run Code Online (Sandbox Code Playgroud)
然后,当我按下“运行查询”按钮时,我收到一个InvalidClientQueryException消息,消息为“找到了没有类型名称的值,并且没有可用的预期类型。指定模型时,有效负载中的每个值都必须具有可以可以在有效负载中指定,也可以由调用者显式指定,也可以从父值中隐式推断出来。”
因此,我一直在尝试找出要指定的数据类型以及如何指定...在各种在线示例中,我看到添加了一个名为__metadata的字段,其他添加了@ odata.type,如CakeType@odata.type。案例在这里。我尝试为整个结构将这些行添加到CakeType JSON内和外部。都没用...
{
"CakeType": {
"__metadata" : {"type" : "SP.Taxonomy.TaxonomyFieldValue" },
"Label": "Apple",
"TermGuid": "3a3ad73f-94ca-4d1e-a25c-XXXX",
"WssId": -1
}
}
Run Code Online (Sandbox Code Playgroud)
要么
{
"__metadata" : {"type" : "SP.Taxonomy.TaxonomyFieldValue" },
"CakeType": {
"Label": "Apple",
"TermGuid": "3a3ad73f-94ca-4d1e-a25c-XXXX",
"WssId": -1
}
}
Run Code Online (Sandbox Code Playgroud)
我还尝试过以我认为在某处看到的类型使用字段名称...
"__metadata" : {"type" : "SP.Data.CakeType" },
Run Code Online (Sandbox Code Playgroud)
并尝试
"CakeType@odata.type" : "SP.Taxonomy.TaxonomyFieldValue" …
Run Code Online (Sandbox Code Playgroud)