我可以使用Microsoft Graph访问Sharepoint日历吗?

我可以使用Microsoft Graph访问Sharepoint日历吗?,sharepoint,office365,microsoft-graph-api,Sharepoint,Office365,Microsoft Graph Api,我需要从SharePoint上的共享日历中提取事件 使用Microsoft Graph,我找到了日历: 其中包括一个列表数组。然后我试着: 返回: [_decodedBody:Microsoft\Graph\Http\GraphResponse:private] => Array ( [@odata.context] => https://graph.microsoft.com/v1.0/$metadata#sites('company.sharepoi

我需要从SharePoint上的共享日历中提取事件

使用Microsoft Graph,我找到了日历:

其中包括一个列表数组。然后我试着:

返回:

 [_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,如图所示。这不显示事件。可以这样提取事件吗?

首先,对于您提到的问题“/sites/{site id}/lists/{list id}/items” 这仅在graph api beta版中可用,是的,不要在产品的生产版本中使用它

请尝试使用上述代码检索您的日历项目。

没有列出任何事件。我也试过了 /站点/{site id}/list/{list id}/items,如Microsoft的API所示 参考文件。这不显示事件

最有可能发生这种情况,因为每个日历都启用了项目级权限

如何验证

  • 转到SharePoint UI中的日历设置:
    /\u layouts/15/listedit.aspx?List={List id}
  • 高级设置下
    验证
    是否读取了
    选择由用户创建的

如果选择了
读取用户创建的项目
选项,则端点
https://graph.microsoft.com/v1.0/sites/{site id}/lists/{list id}/items
将仅返回当前用户创建的事件


为了返回所有事件,可以考虑以下选项:

1) 通过将每个日历的项目级别权限设置为“读取所有项目”

2) 或利用SharePoint API端点检索所有事件:
https://server/_api/web/lists/getbyid('')/项目

根据用户权限,您可能需要启用
覆盖列表行为
权限级别

否则,具有受限权限的用户将无法检索所有事件

https://.sharepoint.com/site//_api/web/lists/getbytitle('Calendar')/items