1

我正在尝试从 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,但在响应中没有看到任何二进制内容。

我的问题是,

  1. 我的方法正确吗?
  2. 我需要使用图形 API 下载文件二进制数据,但将 /content 添加到 URL 会出现此错误。如何使用 API 获取文件?
  3. 我在哪里可以从对文件“@microsoft.graph.downloadUrl”的url的响应中获取二进制内容以在本地下载和保存文件?
  4. 是否有任何其他方法可以使用可在 VBA 环境中工作的图形 API 下载文件?
4

0 回答 0