0

我正在尝试编写一个 html 应用程序,该应用程序在我的机器上本地运行,并使用其数据存储 api 将数据存储在 Dropbox 中。该应用程序将首先使用 Dropbox 对用户进行身份验证,以登录用户的帐户,以便存储数据。(有关此的相关教程是https://www.dropbox.com/developers/datastore/tutorial/js

但是,在我单击 Dropbox 页面中的“允许”按钮接受身份验证后,我无法返回我的 html 并在我的 chrome js 控制台中收到此错误:

不允许加载本地资源:file:///I:/my%20app/my%20app.html#access_token=uKAmBGggAAA...bTSwy&token_type=bearer&uid=192028&state=oas_hjmjzi5m_0.8ejep9nuh99hpvi authorize?client_id=wy9s1uvip6qnswr&redirect_uri=file%3A/// .....................

在我的应用程序中进行身份验证的 js 代码是:

function save(){
    var client = new Dropbox.Client({key: '9s1uswrxxxxxx'});
    client.authenticate({interactive: false}, 
        function (error) {
            if (error) {
                alert('Authentication error: ' + error);
            }
    });
    if (client.isAuthenticated()) {
        alert('the client is authenticated.');
    }
    client.authenticate();
    var datastoreManager = client.getDatastoreManager();
    datastoreManager.openDefaultDatastore(function (error, datastore) {
    if (error) {
        alert('Error opening default datastore: ' + error);
    }

根据 Dropbox 数据存储 API 教程:“链接过程会将用户重定向到 Dropbox 网站,并要求他们授予您的应用访问其 Dropbox 的权限。当用户批准(或拒绝)时,他们将被自动引导回相同的页”。

所以我想知道为什么从保管箱身份验证页面返回到我的 HTML 时会发生此错误。

4

1 回答 1

1

您的 redirect_uri 指向本地 file:// URL,您的浏览器不会将您重定向到该 URL。浏览此处获取更多信息:

https://forums.dropbox.com/topic.php?id=103530#post-558937

简而言之,您应该改为从服务器上提供您的应用程序。

于 2013-07-28T19:52:50.643 回答