应用程序的 Dropbox 集成

Dropbox integration for application

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

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

但我不了解如何设置 authentication/authorization。

我创建了一个 Dropbox 应用程序,生成了一个 API 密钥。 我在调用 Dropbox SDK 时传递 API 键:

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 访问令牌适用于整个 Dropbox Business团队。由于您的 API 应用程序密钥具有团队成员文件访问权限,您可以通过提供 "Dropbox-API-Select-User" HTTP header 或 "select_user" [=39] 来操作团队成员的 Dropbox =] 参数指定确切的用户 https://www.dropbox.com/developers/documentation/http/teams

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

或者是否有一个 API 是 Dropbox 业务明智的?

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

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

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

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

或者,如果您只想连接到整个 Dropbox Business 团队(并选择了 "team member file access" 权限),您仍然可以使用具有 Dropbox Business 访问令牌的用户端点 API 应用程序。为此,您需要在 selectUser 参数 when making your Dropbox object.

中指定所需的会员 ID