OneDrive Api - 与谁共享项目?

时间:2018-05-27 12:19:21

标签: microsoft-graph onedrive

在OneDrive Business帐户中,我共享了文件和文件夹,并且我正在尝试获取与其共享项目的电子邮件/用户列表。

两者

https://graph.microsoft.com/v1.0/me/drive/sharedWithMe

https://graph.microsoft.com/v1.0/me/drive/root/children

都会产生类似的结果。我得到了文件列表,但属性Permissions永远不存在。我所看到的是 项是否共享,而则没有。

现在,我知道/drive/items/{fileId}/permissions,但这意味着逐个检查文件。我的应用程序处理了很多文件,我真的很感激能够批量获取软件权限......

有这样的选择吗?

2 个答案:

答案 0 :(得分:0)

/sharedWithMe实际上与您正在寻找的相反。这些不是您与他人共享的文件,而是其他人与共享的文件。

至于您的具体方案,遗憾的是,permissions不支持集合。换句话说,$epand=permissions集合无法/children。每个文件都需要单独检查。

可以通过查看shared属性来减少需要检查的文件数量。例如,如果scope属性设置为user,则表示此文件已与特定用户共享。如果shared属性为null,则表示此文件仅对当前用户可用。

您还可以使用JSON Batching减少正在进行的通话次数。构建要检查的共享文件列表后,可以使用批处理以20块为单位处理它们。这应该可以大大减少开销,并显着提高整体性能。

答案 1 :(得分:0)

_api/web/onedriveshareditems?$top=100&$expand=SpItemUrl可能会成功。这是OneDrive的Web界面使用的URL。希望对您有帮助