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

使用PRAW Reddit API OAuth授权码流时遭遇Bad Request错误

问题

我用Python脚本通过OAuth授权码流进行身份验证,访问生成的授权URL时收到错误提示:bad request (reddit.com) you sent an invalid request — that option is not valid.

相关代码如下:

reddit_OAuth2.py

class OAuthRedditAccess():
      def __init__(self, client_id, client_secret, user_agent, redirect_url):
          self.user_agent = user_agent
          self.client_id = client_id
          self.client_secret = client_secret
          self.redirect_url = redirect_url

          reddit_read_only = praw.Reddit(client_id=self.client_id, client_secret=self.client_secret, user_agent=self.user_agent)
          print("read only client instatiated.")


      def OAuth2(self):
          reddit = praw.Reddit(client_id=self.client_id, 
          client_secret=self.client_secret,redirect_uri=self.redirect_url, user_agent=self.user_agent)
          _auth_url = reddit.auth.url(scopes=["identity"], state="...", duration="permanent")
          print("Authorization url is ",_auth_url)

main.py

if __name__ == '__main__':
    user_agent = "script:producer_reddit_api:v1.0 (by /u/my_id)"
    redirect_url = "http://localhost:8080"
    client_id = os.environ.get("client_id")
    client_secret = os.environ.get("client_secret")
    
    OAuth_obj = OAuthRedditAccess(client_id, client_secret, user_agent, redirect_url)
    OAuth_obj.OAuth2()

备注:我已通过以下代码验证client_id和client_secret正确,能输出正确用户名:

reddit = praw.Reddit(
client_id = <my_client_id>,
client_secret=<my_secret_id>,
password=<password+2FA_auth_code>,
user_agent = "script:producer_reddit_api:v1.0 (by /u/my_id)",
username=<my_username>)

print(reddit.user.me())
解决方案
  • 校验重定向URI一致性:确认Reddit开发者控制台中注册的重定向URI与代码里的redirect_url完全匹配,包括协议、端口号,不能有拼写或格式差异。
  • 替换无效的state参数:代码中state="..."是非法值,需替换为随机生成的字符串(比如用secrets.token_hex(16)生成),用于防范CSRF攻击。
  • 检查应用类型设置:在Reddit开发者后台,应用类型需设为web app或installed app,script类型应用不支持授权码流的重定向模式。
  • 测试duration参数:若应用权限不支持永久令牌,可尝试将duration="permanent"改为"temporary"验证是否正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 00:23:11