首页 文章

将dropbox与核心API一起使用,但避免登录页面

提问于
浏览
1

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

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

在这里,我正在考虑一个Dropbox帐户,其所有必要的信誉都与我同在 .

谢谢 .

4 回答

  • 0

    是的,你可以这样做 .

    请执行下列操作:

    转到https://www.dropbox.com/developers单击"App Console"单击"Create App"选择"Dropbox API app"选择"Files and Datastores"作为数据类型 . 使用您自己的访问权限回答其余问题

    这是你需要的一点 . 设置应用程序后,在App Console中单击该应用程序 . 在应用程序的主页面上,在OAUTH2部分中,有一个显示“生成访问令牌”的按钮 .

    单击此按钮,它将生成一个非过期的访问令牌,您可以在应用程序中复制/粘贴并使用该令牌,无需进行Oauth2身份验证跳舞即可访问 .

    下面是使用curl访问令牌列出文件夹中的文件(并获取其他元数据)的示例 .

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

    XYZ123是您从应用程序的应用程序控制台生成的访问令牌 .

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

  • 0

    由于您希望使用 your Dropbox帐户来存储文件,因此没有理由使用登录来打扰其他/您的用户:只需以常规方式为您的客户端获取 access_token (需要 you 登录Dropbox)将其存储在您的应用和使用 access_token 来调用Dropbox API . Dropbox的访问令牌永远不会根据Dropbox Access Token Expiry到期,因此应该是您所需要的 .

  • 0

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

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

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

    也许使用像PhantomJS这样的解决方案可以更容易地做到这一点,尽管我当时并不了解它 .

  • 2

    在这里给我自己的问题提出可能的解决方案:这里的主要问题是关于在某些时间间隔重新生成访问令牌,也没有任何用户交互,后端的东西 . 在完成Dropbox API之后,我得出结论,没有公开API可以自动重新生成Access Token . 但Google Drive确实提供了Service Account,它不需要用户交互 .

相关问题