如何用dropbox-api dropbox-js V2打开弹出窗口

时间:2016-12-09 18:28:15

标签: dropbox dropbox-api dropbox-js

我尝试在我的网络应用程序中迁移到dropbox-api v2。 目前我已经实现了打开弹出窗口,用户连接到他/她的Dropbox,我获得了令牌。我在后面的步骤中使用它来访问Dropbox.chooser中选择的用户文件。

但我很难找到解决方案。我有链接到dropbox所有的迁移文件,但是没有任何关于client.authenticate()和Dropbox.AuthDriver.Popup()的等价物的文字?

1 个答案:

答案 0 :(得分:2)

Common Dropbox !!!我刚刚发现这个问题发布在GitHub上的dropbox-sdk-js,以及他们在V2中没有这个功能的答案:(这真的令人失望,我需要自己实现所有员工:

https://github.com/dropbox/dropbox-sdk-js/issues/73#issuecomment-247382634

<强>更新

我已经实施了我的解决方案,并希望分享是否有人需要。

要打开弹出窗口,我使用以下代码:

window.open(dropbox.getAuthenticationUrl("MY REDIRECT URL"), 'DropboxAuthPopup', 'dialog=yes,dependent=yes,scrollbars=yes,location=yes')

window.addEventListener('message',function(e) {
   if (window.location.origin !== e.origin) {
       // Throw error
   } else {
       // e.data Is what was sent from redirectUrl
       // e.data.access_token is the token I needed from dropbox
   }
},false);

然后在我的页面上,我指定Dropbox重定向,我把:

window.addEventListener('load', function() {
    var message = parseQueryString(window.location.hash)
    window.location.hash = '';

    opener = window.opener
    if (window.parent != window.top) {
        opener =  opener || window.parent
    }

    opener.postMessage(message, window.location.origin);
    window.close();

})

可以从dropbox-sdk-js examples

找到parseQueryString的示例