我正在尝试从 OneDrive 下载文件。我是 API 概念的新手,这里是代码,
Sub OneDrive_Download()
'Declare the Object
Dim oRequest As Object
'Create and Assign Object
Set oRequest = CreateObject("MSXML2.XMLHTTP")
'Input User OneDrive URL
URL = "https://xxxx-my.sharepoint.com/personal/sidxxx_ie/"
'Post the URL in the Object
oRequest.Open "POST", URL, False
'Send Keys to the API
oRequest.send ("{""client_id"":myclientid,""CLIENT_SECRET"":myclientsecret}")
'Print the Response in the Immediate Window
Debug.Print oRequest.ResponseText
End Sub
这是我从即时窗口上的 Debug.Print 获得的响应,
// Setup cta message fields.
window.$Do.when("User", 0, function ()
{
User.setupCallToActionMessages();
});
// Other tile
var Tiles = Tiles || {};
Tiles.otherJSON = {
'name': 'Use another account',
'login': '',
'imageAAD': 'other_glyph.png',
'imageMSA': 'other_glyph.png',
'isLive': false,
'link': 'other',
'authUrl': '',
'sessionID': '',
'domainHint': 'other'
};
</script>
</body>
</html>
现在我想在我的 OneDrive 中下载一个名为 test.xlsx 的文件。有什么方法可以解决呢。
更新 - 代码
Sub DownloadFile()
'Declare the Object and URL
Dim myURL As String
Dim WinHttpReq As Object
'Assign the URL and Object to Variables
myURL = "https://xxx-my.sharepoint.com/personal/Sidxxx/Documents/test.xlsx"
Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
'Provide Access Token and PWD to the URL for getting the service from API
WinHttpReq.Open "GET", myURL, False, "abcdef", "12345"
WinHttpReq.send
Debug.Print WinHttpReq.Status
myURL = WinHttpReq.responseBody
If WinHttpReq.Status = 200 Then
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.SaveToFile "C:\testdownload.xlsx", 2
oStream.Close
End If
End Sub
现在正在下载该文件。但似乎是空的。