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

请求Reddit API获取OAuth访问令牌时遭遇400 Bad Request错误

Reddit API OAuth令牌400错误排查思路
  • 检查授权码(code)有效性:授权码为一次性使用,用过即失效,不可重复提交;同时确认code是从Reddit授权回调中完整获取的,无截断、多余空格或字符错误。
  • 确保redirect_uri完全匹配:请求中的redirect_uri必须和Reddit开发者控制台中配置的地址完全一致,包括末尾斜杠、协议(http/https)、大小写,任何细微差异都会触发400错误。
  • 修正User-Agent格式:Reddit对User-Agent有强制格式要求,不能仅用简单字符串,需遵循平台:应用标识:版本号 (by /u/你的Reddit用户名)格式,例如python:reddit_text_scraper:v1.0 (by /u/rishi_valaparla)。
  • 尝试更换请求端点:将请求URL从https://www.reddit.com/api/v1/access_token替换为官方推荐的OAuth专用端点https://oauth.reddit.com/api/v1/access_token。
  • 添加Content-Type头:在请求headers中明确指定Content-Type: application/x-www-form-urlencoded,确保请求数据编码符合Reddit API要求。
  • 再次核对Client ID与Secret:确认Client ID是开发者控制台中「personal use script」对应的短字符串ID,Secret是匹配的密钥,无输入错误或空格。

调整后的测试代码示例

import requests

data = {
    'grant_type': 'authorization_code',
    'code': '你的有效授权码',
    'redirect_uri': '与控制台完全一致的回调地址'
}
headers = {
    'User-Agent': 'python:reddit_text_scraper:v1.0 (by /u/你的Reddit用户名)',
    'Content-Type': 'application/x-www-form-urlencoded'
}
r = requests.post(
    'https://oauth.reddit.com/api/v1/access_token',
    data=data,
    auth=('你的Client ID', '你的Client Secret'),
    headers=headers
)
print(r.text)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:05:07