使用PRAW发布图片仅用主账号而非机器人账号,认证失败求助
解决PRAW机器人账号认证失败问题
以下是针对机器人账号认证失败问题的排查和解决步骤:
确认OAuth应用归属:主账号创建的OAuth应用(client_id/client_secret)仅能用于主账号认证,机器人账号必须使用自身账号创建的OAuth应用。登录机器人账号,进入Reddit应用管理界面,创建新的「script」类型应用,获取对应的client_id和client_secret。
核对登录凭证准确性:
- 机器人账号用户名区分大小写,必须完全匹配
- 若机器人账号开启了两步验证,需使用应用专用密码(在账号安全设置中生成)替代原密码
- 确保密码无拼写错误或特殊字符转义问题
检查应用权限范围:创建OAuth应用时,需确保授权范围包含
submit、edit等必要权限(script类型应用默认权限足够,但需确认未被手动限制)规范User-Agent格式:Reddit对User-Agent有严格要求,需明确标识机器人信息,示例:
user_agent="bot:com.your.botname:v1.0 (by u/YourBotUsername)"简化代码测试:先剥离发图逻辑,仅测试认证是否成功:
import praw import secret # 确保secret中存储机器人账号的client_id、client_secret、username、password reddit = praw.Reddit( client_id=secret.bot_client_id, client_secret=secret.bot_client_secret, password=secret.bot_password, user_agent="bot:com.your.botname:v1.0 (by u/YourBotUsername)", username=secret.bot_username, ) print(reddit.user.me()) # 若能打印机器人账号名,则认证成功
当基础认证通过后,再添加发图逻辑即可正常使用机器人账号发布内容。
内容的提问来源于stack exchange,提问作者Zhou103
相关产品推荐
相关产品推荐

