2013-12-11 3 views
0

저는 js 프로그래머가 아닙니다. 그러나 어떤 이유로 프로그램이 드롭 박스 코어 API를 사용할 수 있도록 액세스 토큰을 얻기 위해 js 프로그램을 작성해야합니다.Dropbox 코어 API에 Javascript 사용

  var xhr = new XMLHttpRequest(); 
     xhr.open("POST", "https://api.dropbox.com/1/oauth/request_token?oauth_consumer_key=qxxxxxxxx&oauth_consumer_secret=axxxxxxxxx", false); 
     xhr.send(); 
     console.log("status: " + xhr.statusText); 
     console.log("response: " + xhr.responseText); 

이 작동하지 않습니다 ... 내가 도움을 ~

응답이 필요합니다 : { "오류": "무단를"}이 오류 메시지입니다 해봤 것을

는 다음과 내가 받았다

+0

"작동하지 않음"... – Sinkingpoint

+0

작은 경고 단어. 그래서 프로그래머가 아닌 사람들을 돕는 것은 아닙니다. – millimoose

+0

내가 처음 볼 수있는 잠재적 인 문제는 AJAX 요청이 비동기 적이라는 것입니다. 즉,'send()'를 호출 한 후에 인터프리터는 요청이 완료되기를 기다리지 않습니다. 요청이 아직 대기 중이므로 로깅 명령문은 아무 것도 인쇄하지 않습니다. 그건 내가 XJR이 AJAX를 다루기 위해 jQuery를 사용하는 경향이 있기 때문에 XHR이 동기 모드인지 비동기 모드인지를 메모리로부터 알지 못한다고 말했다. – millimoose

답변

0

request_token에 대한 호출은 OAuth로 서명되어야합니다. 당신은 (A PLAINTEXT 서명을 사용하여) 이런 식으로 뭔가를 보이는 Authorization 헤더 통과해야한다 :이 길을 가기 전에,

OAuth oauth_version="1.0", oauth_signature_method="PLAINTEXT", oauth_consumer_key="<app key>", oauth_signature="<app secret>&" 

을, 당신은 정말 대신하여 OAuth 2를 사용합니다. OAuth 1보다 간단합니다. OAuth 1을 사용하는 유일한 이유는 HTTPS에서 앱을 호스팅 할 수 없다는 것입니다. OAuth 2는 HTTPS 리디렉션 URI가 필요합니다.

그리고 직접 작성하기 전에 dropbox-js을 사용해야합니다. 그렇다면 코드는 다음과 같습니다.

var client = new Dropbox.Client({key: '<app secret>'}); 
client.authenticate(); 
+0

정말 대단합니다, 고마워요. – Alvin

관련 문제