Как загрузить файл в BOX в VBA с помощью API - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь загрузить файл с компьютера пользователя в BOX с помощью API.На GitHub я обнаружил, что: https://github.com/Tackgnol/VBA-BOX-API/blob/master/mBox.bas

Box Sync и Box Drive не являются решением (не может принудительно установить пользователя).

Когда я печатал StatusText, я получил «Метод не разрешен».

65853643834 - это идентификатор папки, полученный из URL.h5ntjo525se0tbhwswq8ozpoqsge **** из Box Dev "Идентификатор клиента"

enter image description here

Sub UploadFile()
    UploadBoxFile "h5ntjo525se0tbhwswq8ozpoqsge****"
End Sub

Sub UploadBoxFile(ByVal sToken As String)
    Dim curlInput As XMLHTTP60
    Dim sQuery As String
    Dim sXMLInput As String

    Set curlInput = CreateObject("MSXML2.XMLHTTP.6.0")

    sQuery = "https://upload.box.com/api/2.0/files/content"

    sXMLInput = "attributes={name: ""fileSample.txt"", ""parent"": {""id"":         ""65853643834""}}" & vbNewLine & "file=C:\Users\MichalPalko\Downloads\fileSample.txt"

    curlInput.Open "POST", sQuery, False

    curlInput.setRequestHeader "Authorization:", "Bearer " & sToken & 3243
    curlInput.send sXMLInput
    Debug.Print curlInput.StatusText
End Sub

1 Ответ

0 голосов
/ 27 апреля 2019

У меня та же проблема, но я внес некоторые изменения в ваш код и получаю ответ StatusText «Unsupported Media Type».

Я чувствую, что я так близко, но укол в темноте здесь.Вы когда-нибудь понимали это?

Мой скорректированный код ниже:

Sub UploadBoxFile(sFilePath As String)
    Dim curlInput 'As XMLHTTP60
    Dim sQuery As String
    Dim sXMLInput As String

    Dim sToken As String
    Dim sFolderID As String
    Const sP As String = """"
    Const sAp As String = "'"

    sQuery = "https://upload.box.com/api/2.0/files/content"
    sToken = "XXXXXXXXXXXXXXXXXXXXXXXXX"     'My Obscured token
    sFolderID = "1234567890"                 'My Obscured FolderID
    sFileName = "TEST File 0001a.txt"

    sXMLInput = "attributes=" & sAp & "{" & sP & "name" & sP & ":" & sP & sFileName _
        & sP & ", " & sP & "parent" & sP & ":{" & sP & "id" & sP & ":" & sP & sFolderID & sP & "}}" & sAp _
        & vbNewLine & "file=" & sFilePath

Debug.Print sXMLInput

    Set curlInput = CreateObject("MSXML2.XMLHTTP.6.0")
    With curlInput
        .Open "POST", sQuery, False
        .setRequestHeader "Authorization:", "Bearer " & sToken
        .send sXMLInput
        Debug.Print .StatusText
    End With
End Sub
...