我的应用正在使用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权限:
到目前为止没有变化。
答案 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