Tweepy调用mentions_timeline报参数数量错误 Twitter机器人开发问题
问题原因
你使用的Tweepy版本为v4.0及以上版本,该版本开始所有API接口方法不再支持位置参数传递,仅支持关键字参数传递。你查阅的旧教程对应Tweepy v3.x版本,该版本下mentions_timeline可以直接将since_id作为第一个位置参数传入,版本不兼容导致报错。
修复方法
第一步 修改mentions_timeline调用
将reply函数中的第一行代码
tweets = api.mentions_timeline(read_last_seen(FILE_NAME), tweet_mode='extended')
修改为显式指定since_id关键字参数:
tweets = api.mentions_timeline(since_id=read_last_seen(FILE_NAME), tweet_mode='extended')
第二步 同步修改update_status调用(避免后续报错)
同版本规则下,回复动态的update_status方法也需要显式指定回复对应的动态ID的关键字:
api.update_status("@" + tweet.user.screen_name + " testing auto reply/like/retweet", in_reply_to_status_id=tweet.id)
额外优化建议
- 读写文件建议使用
with语法自动管理文件句柄,避免异常场景下文件资源泄漏 - 循环调用增加异常捕获逻辑,避免接口限流、网络波动导致程序直接退出
内容的提问来源于stack exchange,提问作者kudos
相关产品推荐
相关产品推荐

