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

Dropbox只读Python API:如何获取永不失效的API Token?

解决Dropbox只读Python API Token过期问题
  • 先确认Token类型:Dropbox普通访问令牌是短期有效,必然会过期。要拿到长期有效的凭证,必须用刷新令牌(refresh token)。操作步骤:
    1. 登录Dropbox开发者控制台,找到你的应用;
    2. 进入「Permissions」页面,勾选所需的只读权限(比如files.metadata.read、files.content.read);
    3. 切换到「Settings」的「OAuth 2」板块,将访问类型设置为offline——只有开启这个选项,授权流程才会返回刷新令牌。
  • 重新获取含刷新令牌的授权:走OAuth授权流程时,请求参数必须包含scope指定你的只读权限,grant_type设为authorization_code,同时带上授权码、应用ID和应用密钥。返回结果里的refresh_token就是长期有效(除非手动在控制台撤销)。
  • 在Python中自动刷新令牌:每次调用API前,若访问令牌过期,用刷新令牌换取新的访问令牌即可。示例代码:
import dropbox
from dropbox.exceptions import AuthError
import requests

def refresh_access_token(refresh_token, client_id, client_secret):
    url = "https://api.dropboxapi.com/oauth2/token"
    payload = {
        "grant_type": "refresh_token",
        "refresh_token": refresh_token,
        "client_id": client_id,
        "client_secret": client_secret
    }
    resp = requests.post(url, data=payload)
    if resp.ok:
        return resp.json()["access_token"]
    raise AuthError("刷新令牌失败", resp)

# 替换为你的实际参数
REFRESH_TOKEN = "你的刷新令牌"
CLIENT_ID = "你的应用ID"
CLIENT_SECRET = "你的应用密钥"

try:
    new_access_token = refresh_access_token(REFRESH_TOKEN, CLIENT_ID, CLIENT_SECRET)
    dbx = dropbox.Dropbox(new_access_token)
    # 执行只读操作,比如列出指定目录内容
    folder_result = dbx.files_list_folder("/")
    for entry in folder_result.entries:
        print(entry.name)
except AuthError as e:
    print(f"认证出错: {e}")
  • 最后检查令牌状态:回到开发者控制台的「OAuth 2」->「Tokens」页面,确认刷新令牌存在,且应用权限确实为只读。如果之前授权未开启offline,必须重新走授权流程获取新的刷新令牌。

内容的提问来源于stack exchange,提问作者Fran Stanić

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 08:01:02