You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dropbox API token过期 代码自动刷新令牌最快实现方法

Dropbox密码保护共享文件下载凭证自动刷新方案

为什么下载密码保护共享文件必须携带访问密钥

这是Dropbox开放接口的固定鉴权规则:哪怕是公开的带密码共享链接,调用sharing_get_shared_link_file接口时也必须携带有效身份凭证,匿名请求无法通过共享链接的密码校验环节,无法获取文件内容,和代码逻辑无关。
你之前手动在后台生成的是临时测试access token,本身设计有效期就只有数小时到数天,到期就会失效,必须手动更换。

自动刷新token的最快实现方案

用OAuth2的offline授权模式拿长期有效的refresh_token,一次配置后Dropbox SDK会自动完成短期access token的刷新,完全不需要人工手动替换令牌,实现步骤如下:

  • 第一步:打开你之前创建应用的Dropbox开发者后台App Console页面,找到对应应用的权限配置项,勾选files.content.read文件读取权限,保存配置后将「Token access type」设置为offline,该配置是获取长期刷新令牌的必要条件,online模式仅能生成短期临时token,无法自动续期。
  • 第二步:运行一次一次性授权脚本,获取长期有效的refresh_token,这个令牌只要你不主动撤销应用授权、不重置应用密钥就不会过期,脚本代码如下:
import dropbox
from dropbox import DropboxOAuth2FlowNoRedirect

# 替换为你自己应用的对应参数
APP_KEY = "vixxx"
APP_SECRET = "qrxxx"

auth_flow = DropboxOAuth2FlowNoRedirect(
    APP_KEY, 
    APP_SECRET, 
    token_access_type='offline'
)
authorize_url = auth_flow.start()
print(f"请复制以下链接到浏览器打开,登录Dropbox账号完成授权:{authorize_url}")
auth_code = input("授权完成后,将页面显示的授权码粘贴到此处:").strip()

oauth_result = auth_flow.finish(auth_code)
print(f"请保存好拿到的refresh_token,后续固定使用即可:{oauth_result.refresh_token}")
  • 第三步:替换原有下载代码的初始化逻辑,传入refresh_token初始化客户端,后续SDK会自动在token过期时完成刷新,不需要人工干预,最终可长期运行的下载代码如下:
import dropbox

# 固定配置项,可存入本地配置文件长期使用
APP_KEY = "vixxx"
APP_SECRET = "qrxxx"
REFRESH_TOKEN = "上一步获取到的长期refresh_token"

# 初始化客户端,SDK自动处理token刷新逻辑
dbx = dropbox.Dropbox(
    oauth2_refresh_token=REFRESH_TOKEN,
    app_key=APP_KEY,
    app_secret=APP_SECRET
)

# 文件下载逻辑和原有逻辑完全一致
with open("rc.xlsx", "wb") as f:
    shared_link = "https://www.dropbox.com/s/e9xxxxxxx.xlsx?dl=0"
    metadata, res = dbx.sharing_get_shared_link_file(
        url=shared_link,
        link_password='xxx1'
    )
    f.write(res.content)

注意:如果后续你在后台重置了应用密钥、或者主动撤销了该应用的账号授权,refresh_token才会失效,届时只需要重新跑一次第二步的授权脚本拿新的refresh_token即可,日常运行不会出现几天就过期需要手动换token的问题。

内容的提问来源于stack exchange,提问作者PyDeveloper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 13:27:18