无法从Microsoft Graph Explorer更新Sharepoint托管的元数据字段

jja*_*azz 7 microsoft-graph

我正在尝试通过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" ,
"CakeType@odata.type" : "SP.Data.CakeType",
"@odata.type" : "SP.Taxonomy.TaxonomyFieldValue" ,
Run Code Online (Sandbox Code Playgroud)

产生不同错误消息的唯一原因是,当我在{或CakeType内没有CakeType部分的情况下立即打开“ CakeType@odata.type”:“ SP.Taxonomy.TaxonomyFieldValue”时。

{
    "CakeType@odata.type" : "SP.Taxonomy.TaxonomyFieldValue" ,
    "CakeType": {
        "Label": "Apple",
        "TermGuid": "3a3ad73f-94ca-4d1e-a25c-XXXX",
        "WssId": -1
    }
}
Run Code Online (Sandbox Code Playgroud)

{
    "CakeType": {
        "@odata.type" : "SP.Taxonomy.TaxonomyFieldValue" ,
        "Label": "Apple",
        "TermGuid": "3a3ad73f-94ca-4d1e-a25c-XXXXX",
        "WssId": -1
    }
}
Run Code Online (Sandbox Code Playgroud)

每个模型都给出错误“模型无法解析名为'SP.Taxonomy.TaxonomyFieldValue'的类型。当模型可用时,每个类型名称必须解析为有效类型。”

这使我认为我的字段名称正确,但类型错误。

那么...我应该命名什么类型,以便更新托管元数据字段?或...如果上述结构相距甚远,JSON必须是什么...或如何严格使用Graph API更新字段。

谢谢。

我认为查看架构扩展可能会有所帮助(GET https://graph.microsoft.com/v1.0/schemaExtensions),但并没有...

最终,我尝试使用com.microsoft.graph中的类从Java更新托管元数据字段。因此,如果我可以使用Graph Explorer找到合适的东西,那么我可以转到Java。我已经看过其他语言中的一些示例,但无法找出在Java中执行此操作的正确方法。

小智 1

我遇到了同样的问题,发现了这个:https: //microsoftgraph.uservoice.com/forums/920506-microsoft-graph-feature-requests/suggestions/33421180-support-for-setting-sharepoint-driven-metadata-t

\n\n

功能要求:

\n\n
\n

支持通过图形 API 设置 SharePoint 托管元数据(分类)列值和项目上的其他复杂列类型

\n
\n\n

响应:

\n\n
\n

感谢您的反馈意见!这项工作已积压,目前尚未计划。一旦开发工作开始,该功能将在此处更新。-EY

\n
\n