我尝试使用Dropbox Python SDK,但不断遇到短期访问令牌过期的问题。我想我终于找到了一个解决方案,但我相当肯定这不是我应该如何实现它。我使用的过程如下:
1.从官方Dropbox Python SDK github复制示例代码
1.在第20行后添加了print(f"Refresh token: {oauth_result.refresh_token}")
,以实际查看REFRESH_TOKEN
1.将我的脚本从使用dbx = dropbox.Dropbox(dbx_token)
更改为dbx = dropbox.Dropbox(oauth2_refresh_token=REFRESH_TOKEN, app_key=APP_KEY)
。其中REFESH_TOKEN
是从示例脚本打印的内容。
如果这是完全错误的,请让我知道。然而,它似乎工作到目前为止。
旁注:我正在编写的脚本的目的是每天检查一次特定Dropbox文件夹中的新文件,然后将共享链接发送到我的团队使用的特定Slack频道。不确定这是否相关,但决定包括以防万一。
3条答案
按热度按时间zsohkypk1#
修改您的OAuth URL以包含token_access_type='offline'并初始化Dropbox。Dropbox与刷新令牌和应用密钥应该是正确的。
kadbb4592#
Dropbox刷新令牌可重复使用,并且在明确撤销之前不会过期。获得刷新令牌后,只需将其用作创建dropbox对象的参数。
如果需要获取刷新令牌的帮助,请参阅this answer
2ul0zpep3#
获取新的访问代码:
使用访问代码获取刷新令牌:
现在你有了一个刷新令牌,你可以在代码中获取访问令牌:
要使用Python:
这篇文章可以帮助你:
https://www.codemzy.com/blog/dropbox-long-lived-access-refresh-tokenhttps://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Get-refresh-token-from-access-token/td-p/596739