Javascript Dropbox JS SDK:将FileListFolder与检索链接结合起来

Javascript Dropbox JS SDK:将FileListFolder与检索链接结合起来,javascript,sdk,dropbox,dropbox-api,Javascript,Sdk,Dropbox,Dropbox Api,我刚开始用它列出WordPress项目的产品表。一开始,它列出了与产品标题匹配的相应PDF文件(下面的代码),但我想检索一个公共链接供人们下载。我开始研究SDK中包含的一个示例,但它需要一个共享链接——这正是我想要检索的,对吗(不确定是否混淆了术语)?对象输出不包括共享链接,而是ID和相对路径(如果有帮助的话) 当前代码: 函数列表文件(){ var-accessu-TOKEN='********'; var dbx=new Dropbox({accessToken:ACCESS_TOKEN})

我刚开始用它列出WordPress项目的产品表。一开始,它列出了与产品标题匹配的相应PDF文件(下面的代码),但我想检索一个公共链接供人们下载。我开始研究SDK中包含的一个示例,但它需要一个共享链接——这正是我想要检索的,对吗(不确定是否混淆了术语)?对象输出不包括共享链接,而是ID和相对路径(如果有帮助的话)

当前代码:
函数列表文件(){
var-accessu-TOKEN='********';
var dbx=new Dropbox({accessToken:ACCESS_TOKEN});
fileListFolder({path:'/Product Data Sheet/'})
.然后(功能(响应){
显示文件(response.entries);
控制台日志(响应);
})
.catch(函数(错误){
控制台错误(error);
});
返回false;
}
函数显示文件(文件){
var filesList=document.getElementById('files');
李华;
对于(var i=0;i
JS控制台输出:


新的Dropbox API没有很好的文档记录,我只是花了一天左右的时间

1) 你的列表文件看起来不错

var dbx = new Dropbox({ accessToken: ACCESS_TOKEN });
dbx.filesListFolder({path: ""})
.then(function(response) {
    console.log(JSON.stringify(response, null, 4));
})
.catch(function(error) {
    console.error(error);
});
其结果与以下类似

{
"entries": [
    {
        ".tag": "folder",
        "name": "Apps",
        "path_lower": "/apps",
        "path_display": "/Apps",
        "id": "id:XYZ",
        "$$hashKey": "object:175"
    },
    {
        ".tag": "file",
        "name": "Getting Started with Dropbox.pdf",
        "path_lower": "/getting started with dropbox.pdf",
        "path_display": "/Getting Started with Dropbox.pdf",
        "id": "id:XYZ",
        "client_modified": "2016-04-10T19:24:04Z",
        "server_modified": "2016-04-10T19:24:01Z",
        "rev": "14703ce11",
        "size": 1142545,
        "$$hashKey": "object:180"
    }
],
"cursor": "XYZ",
"has_more": false
}
{
    ".tag": "file",
    "url": "https://www.dropbox.com/s/**your  id**/Getting%20Started%20with%20Dropbox.pdf?dl=0",
... // omitted for brevity
}
2) 现在使用上面的方法为文件创建一个共享链接(文档说,如果存在链接,它将只返回该链接)

注意>>我不确定是否需要pathLower,但我只是假设需要它

  dbx.sharingCreateSharedLink({path: **pathLower_to_your_file**})
  .then(function(response) {
      console.log(response.url);
   })
  .catch(function(error) {
      console.error(error);
  });

};
这将产生如下结果

{
"entries": [
    {
        ".tag": "folder",
        "name": "Apps",
        "path_lower": "/apps",
        "path_display": "/Apps",
        "id": "id:XYZ",
        "$$hashKey": "object:175"
    },
    {
        ".tag": "file",
        "name": "Getting Started with Dropbox.pdf",
        "path_lower": "/getting started with dropbox.pdf",
        "path_display": "/Getting Started with Dropbox.pdf",
        "id": "id:XYZ",
        "client_modified": "2016-04-10T19:24:04Z",
        "server_modified": "2016-04-10T19:24:01Z",
        "rev": "14703ce11",
        "size": 1142545,
        "$$hashKey": "object:180"
    }
],
"cursor": "XYZ",
"has_more": false
}
{
    ".tag": "file",
    "url": "https://www.dropbox.com/s/**your  id**/Getting%20Started%20with%20Dropbox.pdf?dl=0",
... // omitted for brevity
}
3) 最后,您可以使用URL检索文件,例如

wget https://www.dropbox.com/s/**your  id**/Getting%20Started%20with%20Dropbox.pdf?dl=0
**对此的进一步研究表明,dropbox使用HTTP转发,节点请求对此存在问题。我用了fetch,它就像一个魔咒一样与转发

您可以使用为路径指定的任何特定文件或文件夹创建可公开访问的共享链接。