授权。 Dropbox的。科尔多瓦

时间:2016-04-07 11:47:55

标签: cordova authorization dropbox

几个星期,试图处理如何连接到Dropbox和我自己的应用程序。我在dropbokse中创建了一个应用程序,并连接到他。当记录出现​​时,我被要求确认使用文件的可能性。我点击允许(在附件中dropbokse开发用户增加1),但是这个框不会消失而且不会关闭,并且不会获得授权。这里下载了一个例子:https://github.com/donovan-graham/cordova_oauth。情况完全一样。但在这种情况下,清楚地表明授权不是错误,但只是一切都挂了。 (但话又说回来,如果以前重置开发用户,那么当它失败时,记录,它仍会增加1)

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身份验证。

祝你好运!