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

请求Reddit OAuth2令牌时出现Bad Request 400错误

解决Reddit OAuth2获取Access Token时的400错误

以下是几个最可能导致你遇到"Bad Request"错误的原因及对应解决方法:

  • Authorization头编码错误
    Authorization: Basic 后面的内容必须是客户端ID:客户端密钥的Base64编码结果,注意:

    • 编码时不要包含任何空格或换行符,可用命令echo -n "client_id:client_secret" | base64生成正确编码
    • 如果你创建的是脚本类型(script)应用,客户端密钥在应用详情页的"secret"字段,不要和客户端ID混淆
  • redirect_uri完全不一致
    获取授权码(code)时使用的redirect_uri必须和兑换token时的完全匹配,包括末尾的斜杠、端口号、协议(http/https)。比如你这里用了http://localhost:1410/,那发起授权请求时的redirect_uri也得一模一样,不能少斜杠或者多额外参数。

  • 授权码(code)无效
    Reddit的授权码只能使用一次,且有效期仅约10分钟。如果code已经被用过、超时,或者复制时带了多余的空格/字符,都会触发400错误,需要重新从授权端点获取新的code。

  • User-Agent不符合要求
    Reddit对User-Agent有严格限制,不能用占位符或通用值,必须是能标识你应用的格式,比如你的应用名/版本 (u/你的Reddit用户名),例如RedditMessenger/1.0 (u/JohnDoe)。

  • 请求参数拼写错误
    检查所有表单参数:确保grant_type的值是authorization_code,code字段没有拼写错误,参数名没有打错(比如不要写成code_或者grant-type)。

修正后的curl请求示例(替换为你的实际值):

curl --location --request POST 'https://www.reddit.com/api/v1/access_token' \
--header 'User-Agent: RedditMessenger/1.0 (u/your_reddit_username)' \
--header 'Authorization: Basic dXNlcl9pZDpzZWNyZXQ=' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode 'code=abc123xyz' \
--data-urlencode 'redirect_uri=http://localhost:1410/'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 03:50:24