Reddit API调用子版块搜索返回403 Forbidden错误原因查询
Reddit API子版块搜索返回403 Forbidden的常见原因及解决方法
1. 接口域名使用错误
你当前请求的www.reddit.com是面向网页端的域名,浏览器访问时会自动携带登录态cookie所以能正常返回结果,但通过OAuth鉴权的API请求必须使用oauth.reddit.com作为域名,将请求链接替换为https://oauth.reddit.com/r/Charlottesville/search.json?q=food&restrict_sr=on即可。
修正后的代码示例:
#### Search within Subreddit res = requests.get('https://oauth.reddit.com/r/Charlottesville/search.json?q=food&restrict_sr=on', headers=headers) print(res.json())
2. User-Agent请求头不符合规范
Reddit API要求所有请求必须携带自定义User-Agent,推荐格式为平台:应用ID:版本号 (by Reddit用户名),如果使用了requests默认的python-requests/xxx格式User-Agent,即使鉴权配置正确也会被拦截返回403。
3. 访问令牌异常
- 检查你获取的OAuth令牌是否已过期,可先调用身份核验类接口验证令牌有效性
- 确认令牌的权限范围包含
read权限,缺少读权限会无法访问内容类接口
4. 触发请求频率限制
已鉴权的Reddit API请求限制为每分钟60次,短时间内发起大量请求会被临时封禁返回403,等待数分钟后重试即可。
内容的提问来源于stack exchange,提问作者Erich Purpur
相关产品推荐
相关产品推荐

