Tig*_*ran 5 javascript dropbox dropbox-api
我有一个网站试图向客户提供服务,以便从Dropbox下载文件.为了简化开发,我使用Dropbox选择器.为此,我启用了我希望下载的域名,并将<script>Dropbox本身(带有相应的data-app-key)建议的标记包含到我的HTML页面中.一切都很美好.
现在我需要下载用户选择的文件. Dropbox选择器似乎没有为此提供任何功能,它只是检索有关文件的信息.在我的情况下这是一个direct link,下载文件.
要下载该文件,在我看来,我需要使用Dropbox.Client在另一个Dropbox javascript库中定义的//cdnjs.cloudflare.com/ajax/libs/dropbox.js/0.9.1/dropbox.min.js
所以使用该libarry我运行这样的代码:
//OPTIONS FOR DROPBOX CHOOSER
var options = {
linkType: "direct",
// THIS FUNCITON RUNS WHEN USER SELECTS SOMETHING
// FROM DOPBOX_CHOOSER
success: function (files) {
// DEFINE APP KET FOR DROPBOX_CLIENT (KEY, SECRET...), WHICH I GET
// BY CREATING NEW "CORE API" TYPE:Full Dropbox APPLICATION ON
// DROPBOX APP CONSOLE
var appKey = { key: 'APP KEY', secret: 'CLIENT SECRET', sandbox: true };
//INIT CLIENT
var client = new Dropbox.Client(appKey);
//TRY TO AUTHENTICATE IT
client.authenticate(function (error, client) {
if (error) {
console.log(error);
}
if (client.isAuthenticated()) {
//READ FILES
for (var i = 0; i < files.length; i++) {
var file = files[i];
client.readFile(file.link, function (error, data) {
if (error) {
return console.log(error); // Something went wrong.
}
alert(data); // data has the file's contents
});
}
} else {
console.log("Error on authentication");
}
});
},
cancel: function () {
}
};
//OPEN DROPBOX_CHOOSER
Dropbox.choose(options);
Run Code Online (Sandbox Code Playgroud)
但所有这些都没有报告我:

如果我不打电话, client.authenticate我无法下载文件,因为获得"未授权错误"通知.
我该如何解决这个问题.?
您不需要使用 Dropbox.js 从选择器返回的链接下载文件。Dropbox.js 是一个用于连接 Dropbox Core API 的库,它与 Chooser 是分开的。client.readFile 函数旨在获取授权 Dropbox 帐户中文件的路径,而不是您拥有的文件的 URL。
由于您已经拥有不需要身份验证的所需文件的直接链接,因此您可以通过平台可用的任何方式直接下载它。(一个简单的例子可能是在终端中使用curl。)