OneDrive Api - 项目与谁共享?

OneDrive Api - With whom the item is shared?

在 OneDrive Business 帐户中,我共享了文件和文件夹,我正在尝试获取共享项目的 emails/users 列表。

两者都

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

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

两者产生的结果相似。我得到了文件列表,但是 属性 Permissions 永远不会出现。我所看到的只是项目 是否 共享,但不与 whom.

共享

现在,我知道 /drive/items/{fileId}/permissions,但这意味着要逐一检查文件。我的应用程序处理大量文件,我非常希望有一种方法可以批量获取软管权限...

有这样的选项吗?

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

至于你的具体场景,很遗憾permissions不支持合集。换句话说,不可能在 /children 集合上 $epand=permissions。每个文件都需要单独检查。

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

您还可以使用 JSON Batching 来减少拨打电话的次数。在构建要检查的共享文件列表后,您可以使用 Batching 以 20 个为一组来处理它们。这应该会大大减少开销并显着提高整体性能。

_api/web/onedriveshareditems?$top=100&$expand=SpItemUrl 可能就可以了。这是 OneDrive 的 Web 界面使用的 URL。希望对你有帮助