sharepoint - 通过 Graph 设置 contentTypeID 时访问被拒绝错误(只读)
问题描述
我们正在使用 The Graph api 来设置 SharePoint 文档的内容类型。从 8 月 23 日开始,在不更改任何代码的情况下,我们将收到拒绝访问错误。
我们正在对地址“ https://graph.microsoft.com/v1.0/sites/[companyName].sharepoint.com,[siteCollectionID],[siteId]/lists/[listId]/items执行“补丁” /[itemId]/fields " 带有请求数据 "{"ContentTypeId": "0x[ContentTypeID]"}"
在一个 SharePoint Online 环境中,这仍然有效,但在另一个 SharePoint Online 环境中,我们收到以下错误:代码:“accessDenied”消息:“字段 'ContentTypeId' 是只读的”
因为这种情况在没有任何代码更改的情况下发生,我们想知道 Microsoft 是否更改了 SharePoint Online 更新中的某些内容,或者失败的 SharePoint 环境中是否有任何设置可能导致此异常?
感谢您的任何帮助或建议
更新
不幸的是,周末情况变得更糟。我们的情况更新:我们有 2 个我们自己管理的 SharePoint Online 环境和 1 个我们无法控制的 SP Online。在星期五,我的环境中的 1 个仍然正常工作,而 2 个开始出现故障。现在在星期一,所有 3 个环境都失败了。我 100% 确定我们没有更改代码和 2 个 SP 环境,我 100% 确定我们没有更改任何设置。
我正在尝试使用 Office 路线图 ( https://products.office.com/nl-NL/business/office-365-roadmap?filters=%26freeformsearch=SharePoint ) 查看 SharePoint Online 的更新,或者我可以使用更多有用的地方吗?
解决方案
要使用图形 API 更改列表项的内容类型,您实际上需要修改项本身的 ContentType facet,而不是 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 因此修补该字段直接不正确。
推荐阅读
- c# - 弹性工具 - 如何为不同的服务器创建分片
- r - 从R中的多个csv文件中读取数据
- angular - Angular:在组件之间传递数据的最佳方式?
- sas - 对 SAS 配置文件进行永久性更改
- python - 获取具有随机类名的元素
- javascript - 窗口粘贴事件侦听器未在 IE 11 中触发
- php - 防止 Apache/PHP 运行影响另一个 vHost 的代码
- ios - 阴阳初始化 - 在调用 init 之前等待片断
- python - 循环遍历在 DataFrame 中创建新列的函数中的元组列表
- c# - 是否可以将 PSSession 导入现有的“OutOfProcessRunspace”