Microsoft Graph API-按文件路径获取文件-找不到404

时间:2019-03-05 13:33:41

标签: microsoft-graph onedrive

我的应用正在使用client_credentials,并且在大多数调用中都成功使用了Graph API。

但是,我一直试图通过路径和文件名从sharepoint文件夹中获取图像:

https://graph.microsoft.com/v1.0/drive/root:/sites/folder1/folder2/folder3/folder4/photo.jpg

正在设置适当的标题(授权和接受)。

httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + session["access_token"]);
httpClient.DefaultRequestHeaders.Add("accept", "application/json; odata.metadata=minimal");

请求返回404-未找到响应。

当我导航到共享点站点时,我可以看到图像很好,所以我只能假定文件路径正确:

https://ourcompany.sharepoint.com/sites/folder1/folder2/folder3/folder4/photo.jpg

道歉,但是我是Graph API的新手,在文档中找不到任何与此引用相关的内容:

https://docs.microsoft.com/en-us/graph/api/resources/onedrive?view=graph-rest-1.0

路径
/ me / drive / root:/ path / to / file

资源 通过相对于用户的OneDrive根文件夹的路径访问DriveItem。

是否需要特殊权限?我发现有些东西暗示在azure门户中可能需要权限,但这与azure活动目录有关,我不确定它是否会影响graph API,因为它工作正常,可以读取共享点中的驱动器和驱动器项(按驱动器) ID和驱动器项目ID,而不是文件路径)。

编辑:进入Azure门户,向应用程序添加了Graph API权限:

  • 站点:ReadAll
  • 目录:ReadAll
  • 文件:ReadAll

到目前为止没有变化。

1 个答案:

答案 0 :(得分:2)

site包含drive,因此您引用的顺序错误。要从网站的驱动器上get a DriveItem,您需要这样做:

/sites/{siteId}/drive/root:/folder1/folder2/folder3/folder4/photo.jpg

如果您正在寻找download DriveItem,而不仅仅是获取元数据,那么您将需要这样做:

/sites/{siteId}/drive/root:/folder1/folder2/folder3/folder4/photo.jpg:/content