从间接Asana链接下载.csv

时间:2019-06-05 14:23:22

标签: excel vba rest web-scraping asana-api

此代码创建下载,但不会创建链接文件,因为它不是直接下载。当我打开下载的.csv文件时,它似乎是重定向中的数据,而不是链接到重定向的文件。

这是代码:

Sub Asana()

Dim myURL As String
myURL = "https://app.asana.com/-/csv?id=955497629707333"

Dim HttpReq As Object
Set HttpReq = CreateObject("Microsoft.XMLHTTP")
HttpReq.Open "GET", myURL, False, "username", "password"
HttpReq.send


myURL = HttpReq.responseBody
If HttpReq.Status = 200 Then
    Set oStrm = CreateObject("ADODB.Stream")
    oStrm.Open
    oStrm.Type = 1
    oStrm.Write HttpReq.responseBody
    oStrm.SaveToFile ThisWorkbook.Path & "\" & "SER_Backlog_BRCC.csv", 2 ' 1 = no overwrite, 2 = overwrite
    oStrm.Close
End If

End Sub

它应该是页面上数据的电子表格副本,但它与网站电子表格中的数据一起出现,而不是如果您手动完成的话,将获得链接的.csv文件。

DOCHTML

应该是这样

should be this

1 个答案:

答案 0 :(得分:0)

我想您有一个授权问题,因为Asana不支持用户/密码。
您需要一个Personal Access Token,必须在您的请求标头中进行设置。

请替换此行

'Set HttpReq = CreateObject("Microsoft.XMLHTTP")
Set HttpReq = CreateObject("MSXML2.XMLHTTP")

那一行:

'HttpReq.Open "GET", myURL, False, "username", "password"
HttpReq.Open "GET", myURL, False
HttpReq.setRequestHeader "Authorization", "Bearer " & "your Asana token here"