2014-11-18 2 views
1

에서 사용자 파일을 다운로드합니다. 사용자가 dropbox에서 선택한 파일을 다운로드하고 싶습니다. 지금까지 javascript와 API를 사용하여 사용자 파일을 나열했습니다.dropbox - javascript

사용자가 파일을 선택

는, 내가 가지고있는 유일한 정보는 경로 (전체 경로가 아닌, 예를 들어 '/ 점점 started.pdf')이다

사용자는 파일 데이터에 액세스하는 내 응용 프로그램을 공인 이미있다 그래서 나는 액세스 토큰을 가지고 있지만 파일을 다운로드해야하는 직접 URL을 알아낼 수 없습니다.

https://dl.dropboxusercontent.com/1/view/XXXXXXXXXXXXXXXXX/getting started.pdf 
https://dl.dropboxusercontent.com/s/XXXXXXXXXXXXXXXXX/getting started.pdf 

을하지만 난 항상 얻을 401 '인증'헤더 설정도하지 않을 경우, 허가 :

나는이 URL을 사용하려고했습니다. 파일을 어떻게 다운로드 할 수 있습니까? 그리고 XXXXXXXXXXXXX를 대체 할 숫자는 무엇입니까 ?? 내 앱 ID와 앱 비밀번호를 모두 시도했지만 아무 것도 작동하지 않는 것 같습니다. 내 코드의

기본 사항은 다음과 같습니다

내가 대신 ajaxing의 새 창에서 URL을 여는 시도
var access_token = 'XXXXXXXXXXXXXXXXXXXXXXXX'; 
var api_secret = 'XXXXXXXXXXXXX'; 
var api_key = 'XXXXXXXXXXXXXXX'; 

$('body').on('click', '.dropbox-doc', function(event){ 
    var path = $(this).data().path; 

    $.ajax({ 
     url: 'https://dl.dropboxusercontent.com/1/view/'+api_key+path+'?dl=1', 
     dataType:'json', 
     headers: { 
      'Authorization':'Bearer '+access_token, 
     }, 
     success: function(data){ 
      console.log('success') 
      console.log(data) 
     }, 
     error: function(data){ 
      console.log(data) 
     } 
    }); 
}); 

내가 여기

+0

내 답글보기 : https://stackoverflow.com/a/45190200/2603965 – grebulon

답변

0

이 나를 위해 일한 무엇 같은 401 오류를 얻을 :

// file path example 
var path = 'projects/client/design/jpgs/image.jpg'; 

$.ajax({ 
    url: 'https://api.dropbox.com/1/media/auto/'+path, 
    type: 'POST', 
    dataType : 'json', 
    headers: { 
    'Authorization':'Bearer '+access_token 
    }, 
}) 
.done(function (data) { 
    console.log("success", data); 
}) 
.fail(function (data) { 
    console.log("error", data); 
}) 

당신이 AJAXing하는 경로 역시이 요청에서 반환 된 URL처럼 보입니다. 당신이 사용하지 않는 경우

https://www.dropbox.com/developers/datastore/docs/js#Dropbox.Client.readFile

: 당신이 official Dropbox JavaScript SDK를 사용하는 경우

0

, 당신은 당신의 응용 프로그램을 허가 한 사용자의 계정에서 파일 콘텐츠를 다운로드 할 수 readFile 방법을 사용한다 이 SDK는, 당신은 직접/파일 (GET) 엔드 포인트를 사용할 수 있습니다

https://www.dropbox.com/developers/core/docs#files-GET

이 API 호출은 토큰 일반적으로 액세스를 사용하여 서명해야합니다.

https://www.dropbox.com/developers/blog/20/using-oauth-10-with-the-plaintext-signature-method https://www.dropbox.com/developers/blog/45/using-oauth-20-with-the-core-api

귀하의 질문에 설정 한 URL에 API에 의해 반환 된 URL의 특별한 종류를, 그리고 당신이 그들을 수정해서는 안 :이 일반적으로 여기에이 작업을 수행하는 방법을 다루 일부 블로그 게시물입니다. 변경하면 임의로 생성 된 토큰 (앱 키/비밀이나 사용자의 액세스 토큰이 아닌)이 포함되어 있기 때문에 중단됩니다.

액세스 토큰이없는 경우, 예를 들어 /media/shares을 사용하여 API를 통해 검색된/1 /보기/또는/s/링크를 통해 콘텐츠를 다운로드해야하는 경우 URL을 수정하거나 인증 방법을 추가하지 않고 정상적인 네트워크 요청을 통해이를 수행 할 수 있습니다.