Piszę aplikację w Cordova/PhoneGap, która próbuje pobrać plik z Dropbox za pomocą Dropbox.js. Wersja Cordova to 3.0.1, a wersja Dropbox.js to 0.10.0. Moja Javascript działa dobrze w przeglądarce na komputerze z tym:Uwierzytelnianie Dropbox.js w Cordova/PhoneGap
var client = new Dropbox.Client({ key: "<my key>", secret: "<my secret>"});
client.authenticate(function(error, client) {
...
Ale w Cordova-zapakowanego aplikacji pojawia się błąd: „Wydaje się, że aplikacja uzywasz złożyła wniosek złe”.
Podejrzewam, że problem ma zrobić z przekierowania URL, który rozwiązuje to w aplikacji Cordova:
Dropbox.AuthDriver.BrowserBase.currentLocation()
-> file:///android_asset/www/index.html
Urls począwszy file: /// nie będzie działać poprawnie z Dropbox API nawet jeśli Dodaję je do identyfikatorów URI przekierowania OAuth w konsoli API Dropbox.
Aplikacja Cordova działa dobrze, jeśli wiem, uid i Token Przed:
var client = new Dropbox.Client({
key: "<my key",
secret: "<my secret>",
token: "<token>",
uid: "<uid>"
});
client.authenticate(function(error, client) {
...
W ten sposób można odczytać moje pliki Dropbox dobrze. Problem polega na tym, że token nie trwa wiecznie i chciałbym otrzymać nowy z samej aplikacji.
Zgodnie z this discussion ten problem powinien już zostać rozwiązany we wcześniejszej wersji pliku dropbox.js (0.9.2). Ale wciąż w to wpadam. Zastanawiam się, czy powinienem użyć API nieco inaczej, ale nie wiem jak.
Dropbox.js dodał opcję redirectUrl in this commit Po prostu nie wiem dokładnie, co mam umieścić w mojej aplikacji Cordova. Plik: ///android_asset/www/index.html nie będzie działał, ponieważ interfejs API Dropbox nie zezwala na przesyłanie adresów URL plików.
Odpowiedź Simona McDonalda na this question może pomóc. Ale to oznacza, że muszę mieć zewnętrzną stronę hostowaną przez serwer z funkcją logowania dropbox.js. Czy mogę zamiast tego użyć głównej strony logowania w sieci Dropbox?
Świetnie! Przetestuję wersję główną i jeśli to nie zadziała, przynajmniej nie będę musiał hostować i tworzyć interaktywnej strony logowania https, ponieważ już ją utworzyłeś. – auramo
Wersja główna wydaje się mieć ten sam problem: https://github.com/dropbox/dropbox-js/issues/106#issuecomment-22203159 – auramo
Teraz jest nowa wersja, która działa dalej: https://github.com/ dropbox/dropbox-js/issues/106 # issuecomment-22726393 – auramo