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

Microsoft Graph API - Getting files by file path - 404 Not Found

我的应用程序正在使用 client_credentials,并且在大多数调用中成功使用了图表 API。

但是,我一直在尝试通过路径和文件名从共享点文件夹中获取图像:

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

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

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

请求 returns 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 活动目录有关,我不确定它是否会影响图形 API,因为它工作正常,正在读取驱动器和驱动器项目共享点(按驱动器 ID 和驱动器项目 ID,而不是按文件路径)。

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

到目前为止没有变化。

A 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