node.js - 应用程序的 Dropbox 集成

标签 node.js dropbox dropbox-api

我对如何创建从我的网络应用程序到 dropbox 的正确集成感到非常困惑。

我想从应用程序内列出和创建文件。 我正在使用 NodeJS 和 Dropbox JS SDK,到目前为止一切顺利。

但我不明白如何设置身份验证/授权。

我创建了一个 Dropbox 应用程序,并生成了一个 API key 。 我在调用 dropbox SDK 时传递了 API key :

var dbx = new Dropbox({
accessToken:
  "ABC_MY_KEY_123"
});
dbx
.filesListFolder({ path: "" })
.then(function(response) {
  console.log(response);
})
.catch(function(error) {
  console.log(error);
});

我收到以下错误:

状态:400, [0] 错误:“调用 API 函数“files/list_folder”时出错:此 API 函数在单个 Dropbox 帐户上运行,但您提供的 OAuth 2 访问 token 适用于整个 Dropbox Business 团队。由于您的 API 应用 key 具有团队成员文件访问权限,因此您可以通过提供“Dropbox-API-Select-User”HTTP header 或“select_user”URL 参数来指定确切的用户来对团队成员的 Dropbox 进行操作 https://www.dropbox.com/developers/documentation/http/teams

那么,我的应用程序应该拥有自己的用户,然后使用该用户进行身份验证吗?

或者是否有适合 Dropbox 业务的 API?

最佳答案

第一次时registering a Dropbox app ,您可以选择“Dropbox API”或“Dropbox Business API”。前者将为您提供一个用于连接到个人用户帐户的应用程序,后者将为您提供一个用于连接到整个业务团队的应用程序。

您尝试使用的 filesListFolder 方法是特定于用户的方法,即它在特定用户帐户上运行,而不是完全在业务团队上运行。

错误消息表明您的访问 token 适用于业务团队,因此它不知道要对哪个用户进行操作。

如果您希望任何用户连接到您的应用,您应该注册“Dropbox API”应用。

或者,如果您确实只想连接到整个 Dropbox Business 团队(并选择了“团队成员文件访问”权限),您仍然可以使用具有 Dropbox Business API 应用访问 token 的用户端点。为此,您需要在 selectUser 参数 when making your Dropbox object. 中指定所需的成员 ID

关于node.js - 应用程序的 Dropbox 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47817121/

相关文章:

node.js - node-postgres 没有执行 client.query()?

node.js - 在 Node-RED 中实现两个输入

javascript - 如何让 bower 和 grunt 添加 angular-bootstrap ui 依赖项?

ios - DropboxSDK : unable to link; app isn't registered for correct URL scheme

javascript - dropbox.js 验证 Firefox 操作系统

javascript - 每个月与一周中正确的日子对齐?

cocoa - Dropbox 的内置通知系统

amazon-s3 - 如何像 dropbox 一样使用 Amazon S3 作为存储来实现用户存储配额

ios - 离开 uiviewcontroller 时 Dropbox 上传停止

linux - 如何修复 urllib3 RuntimeError : Requests dependency 'urllib3' must be version >= 1. 21.1,< 1.22?