sharepoint - 我可以使用 Microsoft Graph 访问 Sharepoint 日历吗?
问题描述
我需要从 SharePoint 上的共享日历中提取事件。
使用 Microsoft Graph 我找到了日历:
https://graph.microsoft.com/v1.0/sites/company.sharepoint.com/lists/CALENDAR_ID
其中包括一个列表数组。然后我尝试了:
https://graph.microsoft.com/v1.0/sites/company.sharepoint.com/lists/CALENDAR_ID/list
返回:
[_decodedBody:Microsoft\Graph\Http\GraphResponse:private] => Array
(
[@odata.context] => https://graph.microsoft.com/v1.0/$metadata#sites('company.sharepoint.com')/lists('CALENDAR_ID')/list
[contentTypesEnabled] => 1
[hidden] =>
[template] => events
)
没有列出任何事件。我也尝试过/sites/{site-id}/lists/{list-id}/items,如Microsoft 的 API 参考文档中所示。这不显示事件。是否可以通过这种方式提取事件?
解决方案
关于
没有列出任何事件。我还尝试过 /sites/{site-id}/lists/{list-id}/items,如 Microsoft 的 API 参考文档中所示。这不显示事件
由于每个日历都启用了项目级别权限,因此很可能会发生这种情况。
如何验证
- 转到 SharePoint UI 中的日历设置:
/_layouts/15/listedit.aspx?List={list-id}
- under
Advanced Settings
verify 是否Read items that were created by the user
被选中
如果Read items that were created by the user
选择了选项,那么端点将只返回当前用户https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/items
创建的事件
为了返回所有事件,可以考虑以下选项:
1)通过将其设置为禁用每个日历的项目级权限Read all items
2) 或利用 SharePoint API 端点检索所有事件:https://server/_api/web/lists/getbyid('<list-id>')/items
根据用户权限,您可能需要启用Override List Behaviors
权限级别
否则权限受限的用户将无法检索所有事件
推荐阅读
- php - 如何从下拉列表中在购物车中添加价格
- swift - SwiftUI 视图层次结构中较高的动画覆盖嵌套动画
- c++ - 无法从 SQLite 数据库中检索数据并在 QT GUI 上显示
- javascript - 无法弄清楚我的代码有什么问题(getElementsByClassName,Javascript 按钮)
- azure - 应用服务计划在 azure devops 的发布管道期间无法覆盖应用设置中的嵌套 JSON 键
- javascript - 将 MongoDB 与流星一起使用的问题
- http - HTTP Content-Security-Policy 是按页面还是按 GET 设置的?
- reactjs - 如何在子容器组件中初始化相同命名的道具
- makefile - 用于编译 CUDA 源 (.cu -> .cu.o) 的隐式规则弄乱了 Makefile
- r - 我可以修复在 r 中安装二进制构建的错误吗?