1

我想将 Dropbox 用于我的文件共享应用程序,使用 Core Dropbox API。我正在使用 OAuth 2.0 API 进行身份验证(隐式授予方法)。问题是,为了获取访问令牌,我需要登录到 Dropbox 帐户,否则它会将我重定向到 Dropbox 登录页面。我不希望我的用户输入登录凭据。

有什么办法可以避免登录过程,直接获取访问令牌?或者,我可以在后端使用一些登录 api 进行登录,而无需用户迭代?

在这里,我正在考虑一个 Dropbox 帐户,其所有必要的凭据都在我身边。

谢谢。

4

4 回答 4

2

是的,你可以这样做。

请执行下列操作:

转到https://www.dropbox.com/developers 单击“应用程序控制台”单击“创建应用程序”选择“Dropbox API 应用程序”选择“文件和数据存储”作为数据类型。用您自己的访问偏好回答其余问题

这是您需要的部分。设置应用程序后,在应用程序控制台中,单击该应用程序。在应用程序的主页上,在 OAUTH2 部分,有一个按钮显示“生成访问令牌”。

单击此按钮,它将生成一个未过期的访问令牌,您可以复制/粘贴并在您的应用程序中使用它来授予您访问权限,而无需进行 Oauth2 身份验证。

这是一个使用带有 curl 的访问令牌来列出文件夹中的文件(并获取其他元数据)的示例。

curl https://api.dropbox.com/1/metadata/dropbox/YourFolder -H "Authorization:Bearer XYZ123"

其中 XYZ123 是您从应用的应用控制台生成的访问令牌。

只要您在请求的标头中包含 Authorization: Bearer,您就可以使用Core API中的所有 API 调用,而无需提供应用 ID、机密或执行 oauth2 身份验证。

于 2015-04-09T18:33:30.773 回答
0

由于您想使用您的Dropbox 帐户来存储文件,因此没有理由通过登录来打扰其他/您的用户:只需access_token以常规方式为您的客户获取一个(这需要登录到 Dropbox)将其存储在您的应用程序中并access_token在调用 Dropbox API 时使用它。根据Dropbox Access Token Expiry ,Dropbox 的访问令牌永不过期,所以这应该是您所需要的。

于 2015-01-07T13:02:43.110 回答
0

正如您可能在核心 api 文档中看到的那样,Dropbox 不提供此功能。

不过,您可以通过模拟用户与网站的交互来自动化该过程。这可以通过请求模块来完成。我为我的项目开发了一个解决方案:

https://github.com/joe42/CloudFusion/blob/master/cloudfusion/store/dropbox/dropbox_store.py#L214

也许这可以使用 PhantomJS 之类的解决方案更轻松地完成,尽管当时我并不知道。

于 2015-01-07T19:34:53.183 回答
0

在这里为我自己的问题提出可能的解决方案:这里的主要问题是每隔一段时间重新生成访问令牌,这也是没有任何用户交互的后端东西。在浏览了 Dropbox API 之后,我得出的结论是没有公开 API 来自动重新生成访问令牌。但是Google Drive确实提供了不需要用户交互的Service Account 。

于 2015-01-12T06:18:03.733 回答