在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
,但这意味着逐个检查文件。我的应用程序处理了很多文件,我真的很感激能够批量获取软件权限......
有这样的选择吗?
答案 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。希望对您有帮助