我对如何创建从我的网络应用程序到 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/