5

我创建了一个本地单页应用程序(嵌入 javascript 的网页可以使用 Chrome 浏览器在本地打开),我希望能够从我的 Dropbox 帐户上传和下载文件。我一直在寻找使用 javascript 执行此操作的解决方案,但是,我走到了死胡同。有一个 javascript Dropbox api (dropbox.js),但您似乎需要从网络服务器(用于 Dropbox 身份验证重定向)使用它,我认为它不适用于身份验证后重定向到本地 html 文件。

有没有人做过我想做的事情,或者只是不可行?如果不使用 Dropbox,是否有替代方案(例如,Google Drive 等)?

谢谢。

4

3 回答 3

5

要验证使用client.authDriver(new Dropbox.Drivers.Popup())请参见此处)而不是重定向:

此驱动程序可能对无法处理由 Dropbox.Drivers.Redirect 执行的重定向的浏览器应用程序很有用。该驱动程序通过弹出一个单独的窗口并在该窗口中加载 Dropbox 授权页面来避免更改应用程序浏览器窗口的位置。

您应该能够使用 FileReader 在本地读取文件,然后写入您的文件


更新:是的,你知道。请参阅浏览器和开源应用程序

Dropbox API 指南要求 API 密钥和秘密永远不会以明文形式公开。这是在客户端使用 dropbox.js 的应用程序(浏览器应用程序和 Chrome 扩展程序)以及所有开源应用程序的问题。

要满足此要求,请对您的 API 密钥进行编码

于 2013-04-16T16:39:10.553 回答
2

您绝对可以使用 Google 驱动器:https ://developers.google.com/drive/quickstart-js 。还有一个样品 plunker 也漂浮在周围。我相信您也可以通过 JS api 使用 Skydrive。

不是 100% 确定 Dropbox,但他们使用 OAuth 1(Dropbox 身份验证符合 OAuth v1 规范 @ https://www.dropbox.com/developers/core/authentication#python),通常不是一个好主意将它与 JS 一起使用,因为它需要公开您的应用程序机密。Twitter 使用相同的,他们杀死了他们的 JS api。

于 2013-04-12T18:23:36.400 回答
0

You can try to use one of the lightweight local webservers like Bottle or even Tornado. And then the redirection URL will be a kind of http://127.0.0.1:5000/.

于 2013-04-16T08:31:14.890 回答