我正在尝试从 Visio 文件宏中下载一个名为 Test.docx 的 Word 文档文件,该文件位于 Sharepoint 文档库中,该宏引用了 https://docs.microsoft.com/en-us/graph/api/driveitem上的 Microsoft 文档- get-content?view=graph-rest-1.0&tabs=http
我可以让我的站点 ID 和项目 ID 以以下 URL 结尾,
https://graph.microsoft.com/v1.0/sites/{site-id}/drive/items/{item-id}
由于我想以二进制格式下载文件内容并将其保存在本地,因此我将“内容”添加到 url,如下所示,
https://graph.microsoft.com/v1.0/sites/{site-id}/drive/items/{item-id}/content
我的代码在具有活动访问令牌的客户端的 VBA 环境中如下所示,
myURL=https://graph.microsoft.com/v1.0/sites/{site-id}/drive/items/{item-id}/content
Set winHttpReq = New XMLHTTP60
winHttpReq.Open "GET", myURL
winHttpReq.setRequestHeader "Authorization", "Bearer " & AccessToken
winHttpReq.send
我收到一个错误,因为“访问被拒绝”。在 winHttpReq.send 行,控制退出函数。
Files.Read.All、Files.ReadWrite.All、Sites.Read.All、Sites.ReadWrite 是已授予 API 访问权限的权限。
此外,我又进行了一次调用以获取“@microsoft.graph.downloadUrl”下载 URL,但在响应中没有看到任何二进制内容。
我的问题是,
- 我的方法正确吗?
- 我需要使用图形 API 下载文件二进制数据,但将 /content 添加到 URL 会出现此错误。如何使用 API 获取文件?
- 我在哪里可以从对文件“@microsoft.graph.downloadUrl”的url的响应中获取二进制内容以在本地下载和保存文件?
- 是否有任何其他方法可以使用可在 VBA 环境中工作的图形 API 下载文件?