Скачайте .csv по косвенной ссылке Asana - PullRequest
1 голос
/ 05 июня 2019

Этот код создает загрузку, но не связанного файла, поскольку он не является прямым. Когда я открываю загружаемый файл .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 голосов
/ 07 июня 2019

Я полагаю, у вас проблема с авторизацией, поскольку Asana не поддерживает имя пользователя и пароль.
Вам нужен Личный токен доступа , который должен быть установлен в заголовке вашего запроса.

Пожалуйста, замените эту строку

'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"
...