通过Microsoft Graph访问共享的OneDrive文件?

时间:2019-06-20 19:10:07

标签: sharepoint microsoft-graph onedrive

我有一个使用OneDrive设置的公司帐户。我有一个“虚拟”(代理?)帐户,没有自己的OneDrive。 (我有意让此帐户具有很少的特权-仅将其设置为读取器。)我已经将一个文件夹从公司帐户共享到虚拟帐户。我想使用虚拟帐户使用Microsoft Graph读取与其共享的文件。我将如何处理?什么是合适的电话?

当我尝试“ /v1.0/me/drive/sharedWithMe”时,我得到“您无权创建此个人站点或您没有有效的许可证”。我真的不想在这个虚拟帐户上浪费Office 365许可证,但这是唯一的方法吗?是否可以通过SharePoint路由执行此操作?如果是这样,怎么办?还有其他更好的方法来完成我要达到的目标吗?

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

问题是/me试图找到呼叫者的个人站点,因此,如果他们没有订阅,则请求将失败。

您是否可以提前知道共享项目?我认为那确实是使这种情况起作用的唯一方法。在这种情况下,您可以执行以下操作之一。

使用API​​ ID
作为数据的所有者,请发出API请求以获取项目的driveIdid。然后,作为虚拟帐户发出如下请求:

https://graph.microsoft.com/v1.0/drives/driveId/items/id

使用SharePoint URL
在这种情况下,假设该文件夹的SharePoint URL为https://tenant-my.sharepoint.com/personal/user_tenant_com/Documents/Folder,则可以encode it as a share id并发出如下请求来访问它:

https://graph.microsoft.com/v1.0/shares/u!aHR0cHM6Ly90ZW5hbnQtbXkuc2hhcmVwb2ludC5jb20vcGVyc29uYWwvdXNlcl90ZW5hbnRfY29tL0RvY3VtZW50cy9Gb2xkZXI/driveItem

答案 1 :(得分:0)

好,如Brad所述,“ / me”不起作用。但是,我能够使它正常工作。最初我遇到了一个“范围”问题,但是一旦解决了这个问题,我就使用了https://graph.microsoft.com/v1.0/drives/{drive-id}/root:/{folder-path}:/children之类的查询,并且...问题解决了!