2013-08-04 2 views
5

나는 Dropbox.js를 사용하여 Dropbox에서 파일을 가져 오려고하는 Cordova/PhoneGap에 응용 프로그램을 작성하고 있습니다. Cordova 버전은 3.0.1이고 Dropbox.js 버전은 0.10.0입니다.Cordova/PhoneGap의 Dropbox.js 인증

var client = new Dropbox.Client({ key: "<my key>", secret: "<my secret>"}); 
client.authenticate(function(error, client) { 
... 

을하지만 코르도바 패키지 응용 프로그램에 오류가 발생합니다 : 내 자바 스크립트는이와 데스크톱 브라우저에서 잘 작동합니다 "당신이 사용하던 응용 프로그램이 잘못된 요청을 제출 한 것 같다". 보관 용 API 경우에도 제대로 작동하지 않습니다 /// :

Dropbox.AuthDriver.BrowserBase.currentLocation() 
-> file:///android_asset/www/index.html 

URL을 파일로 시작 :

나는 문제가 코르도바 응용 프로그램이로 확인 리디렉션 - URL과 관련이있다 의심 Dropbox API 콘솔에서 OAuth 리디렉션 URI에 추가합니다. 내가 잘 내 보관 용 파일을 읽을 수

var client = new Dropbox.Client({ 
    key: "<my key", 
    secret: "<my secret>", 
    token: "<token>", 
    uid: "<uid>" 
}); 
client.authenticate(function(error, client) { 
... 

이 방법 : 나는 토큰 전에 UID와를 알고있는 경우

코르도바의 응용 프로그램은 잘 작동을한다. 문제는 토큰이 영원히 지속되지 않으며 내 앱 자체에서 새로운 토큰을 얻고 싶습니다.

this discussion에 따르면이 문제는 이전 버전의 dropbox.js (0.9.2)에서 이미 해결되었을 것입니다. 그러나 나는 아직도 그것에 뛰어 들었다. API를 약간 다르게 사용해야하는지 궁금하지만, 어떻게해야할지 모르겠다.

Dropbox.js에 redirectUrl 옵션이 추가되었습니다. in this commit 내 Cordova 앱에 무엇을 넣어야할지 정확히 모릅니다. Dropbox API가 파일 URL을 허용하지 않기 때문에 ///android_asset/www/index.html 파일이 작동하지 않습니다.

사이몬 맥도날드의 대답이 this question 일 수 있습니다. 그러나 그것은 dropbox.js 로그인 기능을 가진 외부 서버 호스팅 페이지가 있어야 함을 의미합니다. 또는 기본 Dropbox 웹 로그인 페이지를 대신 사용할 수 있습니까?

답변

5

dropbox.js 0.10.1에는 Cordova에 대한 몇 가지 수정 사항이 있습니다.

file : //이 작동하지 않을 때 포함 된 WebView에서 OAuth 2 리디렉션 URL로 사용할 수있는 페이지를 설정했습니다.

https://www.dropbox.com/1/oauth2/redirect_receiver

+0

마스터 버전을 테스트하고 작동하지 않는다면 적어도 대화식 https 로그인 페이지를 작성하고 작성해야 할 필요는 없습니다. 이미 대화식 https 로그인 페이지를 작성 했으므로 작성해야합니다. – auramo

+0

마스터 버전과 동일한 문제가있는 것 같습니다 : https://github.com/dropbox/dropbox-js/issues/106#issuecomment-22203159 – auramo

+0

이제는 더 잘 작동하는 새 버전이 있습니다. https://github.com/ dropbox/dropbox-js/issues/106 # issuecomment-22726393 – auramo