Replit部署Discord机器人PRAW请求报User-Agent头部无效错误如何解决
故障解决方案
该报错的核心原因是构造User-Agent时传入的参数包含不可见换行、首尾空白符,本地运行正常是因为本地环境变量配置规范,Replit平台输入环境变量时很容易误输入末尾换行、前后空格,你此前仅排查代码层面的空格,没有覆盖环境变量取值的隐藏问题,按以下步骤处理即可解决:
- 打开Replit对应项目的「Secrets」环境变量管理面板,找到
REDDIT_APP_ID、REDDIT_APP_SECRET两个配置项 - 删除两项原有的值,重新复制粘贴Reddit后台申请的对应凭证,粘贴后手动删除首尾所有空白字符、换行符后再保存
- 修改PRAW初始化代码,对传入参数统一做去空白处理,从代码层面规避环境变量隐藏符号的影响,修改后代码如下:
if REDDIT_APP_ID and REDDIT_APP_SECRET: # Init reddit's bot processed_app_id = REDDIT_APP_ID.strip() processed_app_secret = REDDIT_APP_SECRET.strip() self.reddit = praw.Reddit( client_id=processed_app_id, client_secret=processed_app_secret, user_agent=f"bot-name:{processed_app_id}:1.0" )
- 重启Replit项目运行实例,重新触发对应命令即可恢复正常
内容的提问来源于stack exchange,提问作者moudii04
相关产品推荐
相关产品推荐

