【问题标题】:How do you get and use a Refresh Token for the Dropbox API (Python 3.x)您如何获取和使用 Dropbox API (Python 3.x) 的刷新令牌
【发布时间】:2026-01-21 18:45:01
【问题描述】:

正如标题所说,我正在尝试生成一个刷新令牌,然后我想使用刷新令牌来获取短暂的访问令牌。

但有一个问题,因为我不够聪明,无法理解docs on the dropbox site,而且我发现的所有其他信息都对我不起作用 (ABC)或者是我不懂的语言。

我已经尝试了所有three examples from the github page,以及来自本网站其他问题的用户代码。

我没有任何事情要做。

我得到的最多的是

错误:400 客户端错误:对 url 的错误请求:api.dropboxapi.com/oauth2/token

dropbox.rest.RESTSocketError:连接到“api.dropbox.com”时出错:[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1123)

:(

【问题讨论】:

  • dropbox 库的 1.6 版非常旧;您应该使用最新版本,当前为 v11.25.0。您可以在此处找到处理 OAuth 应用授权流程以获取和使用刷新令牌的示例:github.com/dropbox/dropbox-sdk-python/blob/main/example/oauth/…
  • @Greg 我改回最新版本,并尝试了所有示例。我无法让他们中的任何一个工作。我得到的最多的是“错误:400 客户端错误:对 url 的错误请求:api.dropboxapi.com/oauth2/token”。 :(
  • 我建议发布一个新问题,详细说明您目前遇到的问题。
  • @Greg 老实说,我没有取得任何进展。我所做的唯一事情就是尝试更多的代码示例,但仍然没有任何工作。
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: python python-3.x access-token dropbox dropbox-api


【解决方案1】:

这就是我的做法。我会尽量保持简单和准确

在下面的授权 URL 中将 替换为您的 Dropbox 应用密钥

https://www.dropbox.com/oauth2/authorize?client_id=&token_access_type=offline&response_type=code

完成授权 URL 上的代码流。最后您会收到一个AUTHORIZATION_CODE

转到Postman 并使用以下配置创建一个新的 POST 请求

Key Value
code <AUTHORIZATION_CODE>
grant_type authorization_code

发送请求后,您将收到包含 refresh_token 的 JSON 负载。

{
    "access_token": "sl.****************",
    "token_type": "bearer",
    "expires_in": 14400,
    "refresh_token": "*********************",
    "scope": <SCOPES>,
    "uid": "**********",
    "account_id": "***********************"
}

在您的 Python 应用程序中,

import dropbox

dbx = dropbox.Dropbox(
            app_key = <APP_KEY>,
            app_secret = <APP_SECRET>,
            oauth2_refresh_token = <REFRESH_TOKEN>
        )

希望这对你也有用!

【讨论】:

  • 谢谢,我会尝试一下。它已经比我见过的所有其他参考资料更有帮助!
  • 我得到了这个工作,但我必须不断重复这些步骤吗?还是该刷新令牌会永久存在?作为计划作业的一部分,我需要不断登录到保管箱。
  • 不,您不需要再次重复这些步骤。在您撤销它们之前,刷新令牌不会过期。从 Dropbox 论坛阅读 this 有趣的话题