2012-08-28 2 views
1

기존 폴더를 반복하면서 box.com에서 파일을 선택하고 동시에 업로드해야하는 Excel 매크로 (vba)가 필요합니다. excel 매크로를 사용하여 box.com 폴더에 내 컴퓨터에서 파일. 나는 그물에 오랜 시간을 찾고 있습니다. 그러나 사용하지 마십시오. 이를 달성하는 방법을 알려주십시오.box.com 폴더를 통해 파일을 선택하고 선택한 파일을 다운로드하는 방법

미리 감사드립니다.

- 편집

인증 토큰을 얻기 위해 다음 코드를 사용하고 있습니다. 하지만 .send (url) 위치에 오류 메시지가 표시됩니다. 오류 메시지는 "서버 이름 또는 주소를 확인할 수 없습니다"입니다.

Function getAuthToken() 

    Dim WinHttpReq As WinHttp.WinHttpRequest 
    Dim api_key As String 

    api_key = "{api_key}" 

    Set WinHttpReq = New WinHttp.WinHttpRequest 

    strUrl = "https://www.box.net/api/1.0/rest?action=get_ticket&api_key=" & api_key 

    WinHttpReq.Open Method:="GET", url:=strUrl, async:=False 
    WinHttpReq.Send 
    getTicket = WinHttpReq.responseText 
    Debug.Print getTicket 

End Function 

답변

1

vba 전문가가 아니기 때문에 질문에 vba 태그를 사용하면 더 많은 답변을 얻으실 수 있습니다. 그러나 일부 빠른 스캔은 약 VBA 이런 식으로 뭔가를 수행하여 REST API를 호출 할 수 있음을 보여줍니다

Dim MyURL as String 
MyURL = "http://api.box.com/2.0/folders/0.xml" 
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP") 

With objHTTP 
    .Open "GET", MyURL, False 
    .setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
    .setRequestHeader "Authorization", "BoxAuth api_key=<your api key>&auth_token=<your auth token> 
    .send (MyURL) 
End With 

내가 진짜 VBA 전문가에 연기 하겠지만, 대략이 라인을 따라 뭔가 작업을해야합니다.

+0

의견을 보내 주셔서 감사합니다. 나는이 질문을 vba 밑에 표시했다. 나는 이것을 시험해보고 결과를 알려 줄 것이다. 어쨌든 귀중한 정보에 대한 큰 감사드립니다. – user1091111

+0

excel-vba를 사용하여 api-key를 전달하여 인증 토큰을 얻으려면 코드를 게시 할 수 있습니까? – user1091111

+0

사용자에 대한 인증 토큰을 얻으려고합니까? 나는 이미 API 키를 얻었고 인증을 위해 user-flow를 통해 읽었다 고 가정합니다. – Peter

0

그래, 이건 실망 스럽네. 나는 Peter와 같은 코드를 WinHttp.WinHttpRequest.5.1과 MSXML2.ServerXMLHTTP를 사용하여 시도했다. 그리고 두 가지 모두와 마찬가지로 나는 길이가 0 인 문자열을 돌려 받는다. 오류 메시지 또는 아무것도.

나는 cURL을 설치하고 URL을 테스트했습니다. 거기에서 잘 작동합니다. 아래 스크립트는 jsonplaceholder.typicode.com과 같은 일반적인 JSON 웹 서비스에서도 잘 작동합니다.

이 모든 것이 Box.com이 승인되지 않은 출처에서 왔음을 감지하고 아무것도 반환하지 않는다고 생각하는 것입니다. . . 아마도 보안상의 이유로.

Option Explicit 
Const URL As String = "https://api.box.com/2.0/folders/0 -H ""Authorization: Bearer MyToken""" 
'Const URL As String = "https://jsonplaceholder.typicode.com/posts/1" 
Sub Test() 

    Dim winHTTP As Object 
' Set winHTTP = CreateObject("WinHttp.WinHttpRequest.5.1") 
    Set winHTTP = CreateObject("MSXML2.ServerXMLHTTP") 

    winHTTP.Open "GET", URL 
    winHTTP.setRequestHeader "Content-Type", "application/json" 
    winHTTP.send 
    Debug.Print winHTTP.ResponseText 

    If Len(winHTTP.ResponseText) = 0 Then 
     MsgBox "blank string returned" 
    Else 
     Dim objResponse As Object 
     Set objResponse = JsonConverter.ParseJson(winHTTP.ResponseText) 'Converter from Tim Hall - https://github.com/VBA-tools/VBA-JSON 
    End If 



End Sub