Sharepoint 通过图形设置contentTypeID时出现访问被拒绝错误(只读)

Sharepoint 通过图形设置contentTypeID时出现访问被拒绝错误(只读),sharepoint,microsoft-graph-api,sharepoint-online,Sharepoint,Microsoft Graph Api,Sharepoint Online,我们正在使用Graph api设置SharePoint文档的内容类型。从8月23日开始,在不更改任何代码的情况下,我们将收到拒绝访问错误 我们正在对地址“”执行“修补程序” 使用requestdata“{”ContentTypeId:“0x[ContentTypeId]”}” 在一个SharePoint Online环境中,这仍然有效,但在另一个SharePoint Online环境中,我们收到以下错误: 代码:“访问被拒绝” 消息:“字段'ContentTypeId'为只读” 由于这种情况在没

我们正在使用Graph api设置SharePoint文档的内容类型。从8月23日开始,在不更改任何代码的情况下,我们将收到拒绝访问错误

我们正在对地址“”执行“修补程序” 使用requestdata“{”ContentTypeId:“0x[ContentTypeId]”}”

在一个SharePoint Online环境中,这仍然有效,但在另一个SharePoint Online环境中,我们收到以下错误: 代码:“访问被拒绝” 消息:“字段'ContentTypeId'为只读”

由于这种情况在没有任何代码更改的情况下发生,我们想知道Microsoft是否更改了SharePoint在线更新中的某些内容,或者失败的SharePoint环境中是否存在任何可能导致此异常的设置

谢谢你的帮助或建议

更新

不幸的是,周末情况变得更糟了。 更新我们的情况:我们有两个SharePoint Online环境,由我们自己管理,还有一个SP Online,我们无法控制。周五,我的环境中有1个仍然正常工作,2个开始出现故障。现在在周一,所有3个环境都会失败。我100%确定我们没有更改代码,对于2 SP环境,我100%确定我们没有更改任何设置


我正在尝试使用Office路线图()查看SharePoint Online的更新,或者有没有其他有用的地方可以使用?

经过一些挖掘,我还没有看到Microsoft发布的任何官方帖子说明与SharePoint Online相关的更新。但这可能只是延迟或是他们忘记了什么

从你的错误代码。“accessDenied”消息:“字段'ContentTypeId'为只读”。权限似乎已更改

我建议您检查定义站点列的字段元素。 或者比较您的两个SharePoint online环境,查看权限是否按预期更改

ReadOnly="TRUE" | "FALSE"
ReadOnlyEnforced="TRUE" | "FALSE"
也许站点管理员正在考虑锁定立柱,但忘记了提起它。有时,在创建新网站列时,SharePoint管理员会将其设置为只读或强制只读,以防止用户编辑存储在字段中的数据。这可以通过PowerShell或CSOM完成


这里有一些和田野

我假设Graph已经进行了一些更改。在Postman中测试了这些调用,我可以确认Graph调用已从8月23日开始在多个环境中停止工作。据我所知,这与SharePoint环境中的任何设置无关

作为一种解决方法,似乎仍然可以使用SharePoint REST Api更改内容类型

PATCH {siteurl}/_api/web/lists(guid'{libraryId}')/items({id})
If-Match: {eTag}
X-HTTP-Method: Merge

{"ContentTypeId": "0x0101009E44B70FDF6D5D418E3B608C7DB4E8DB0100F24E9188A7EE514197DF449302E7D11C"}

对于过去用于处理Graph的东西,不得不回到SharePoint API,这有点烦人

要使用graph API更改列表项的内容类型,实际上需要修改项本身的ContentType方面,而不是ContentType或ContentTypeID字段。下面是一个例子:

PATCH 

https://graph.microsoft.com/v1.0/sites/YOURTENANT.sharepoint.com:/sites/SITENAME:/lists/LISTNAME/items/1/

{
    "contentType": { "id": "0x0100D3426610C727AC42B5238A1FA52864F6" }
}

在这种情况下,这是我的基本项目类型的Id。我不知道为什么修补ContentTypeId字段会奏效,因为它在我们的底层代码中似乎不是一个可寻址字段。我将继续挖掘,看看最近是否有变化,但我现在能说的最好的是,它以前确实不应该工作,因为ContentType是一个复杂的类型,包含名称和Id,因此直接修补字段是不正确的。

谢谢@NaaHCat的帮助。不幸的是,在没有任何改变(享受周末)的情况下,其他SP在线环境也在周末开始出现故障。(见我对问题的更新)太好了@Jeremy-是的,似乎就是这样!我们已经使用该电话至少16个月了;-)所以我很惊讶听到它不应该起作用。你救了我一天!