几个星期,试图处理如何连接到Dropbox和我自己的应用程序。我在dropbokse中创建了一个应用程序,并连接到他。当记录出现时,我被要求确认使用文件的可能性。我点击允许(在附件中dropbokse开发用户增加1),但是这个框不会消失而且不会关闭,并且不会获得授权。这里下载了一个例子:https://github.com/donovan-graham/cordova_oauth。情况完全一样。但在这种情况下,清楚地表明授权不是错误,但只是一切都挂了。 (但话又说回来,如果以前重置开发用户,那么当它失败时,记录,它仍会增加1)
答案 0 :(得分:1)
可能无法直接回答您的问题,但这可能有所帮助。
您可以使用Dropbox HTTP API将您的Cordova应用与http
个请求相关联。在我的应用中,我使用这些http
请求将其链接到Dropbox,因为目前还没有正式的Dropbox JavaScript文档。
要开始Dropbox身份验证,您应该让用户导航到https://www.dropbox.com/oath2/authorise。您可以使用cordova-plugin-inappbrowser
在应用程序中轻松完成此操作。
示例强>
var response_type = 'code';
var client_id = '<your-dropbox_app_client_id>';
var redirect_uri = 'https://www.dropbox.com/1/oauth2/redirect_receiver';
var data = 'response_type=' + response_type + '&client_id=' + client_id + '&redirect_uri=' + redirect_uri';
var ref = cordova.InAppBrowser.open(
'https://www.dropbox.com/oauth2/authorize?' + data',
'_blank',
'location=no,clearcache=yes'
);
ref.addEventListener('loadstop', function(event) {
// get the response from event.url
var code = event.url.substring(redirect_uri.length + 6);
var headers = new Headers();
headers.append('Authorization', 'Basic <your basic auth here>');
headers.append('Content-Type', 'application/x-www-form-urlencoded');
var request = `code=${code}&grant_type=authorization_code&redirect_uri=${redirect_uri}`;
var observable = http.post('https://api.dropboxapi.com/oauth2/token', request, { headers: headers });
// the data returned will have the access_token that will link Dropbox to your App!!
});
一些注释
此示例位于使用Angular2构建的cordova应用程序中。因此,http
模块返回可观察对象。您可以使用jQuery中的$.ajax
或类似方法轻松执行这些步骤。
我们使用https://www.dropbox.com/1/oauth2/redirect_receiver
作为redirect_url,因为它必须是https
连接,我们会发送access_token
。您必须确保已在您的Dropbox-app页面中将此url
输入到您允许的重定向网址中!
最后,您的<basic-auth-here>
是使用Dropbox-app的app-key和密钥进行基本的http身份验证。