使用tweepy开发Twitter机器人报错:Client.create_tweet参数数量不符
问题解决:Tweepy create_tweet 参数错误
错误原因
你调用client.create_tweet(tweet.id, text=...)时,错误地把tweet.id作为位置参数传入了。Tweepy的Client.create_tweet()方法除了自身的self参数外,所有功能参数都需要用关键字参数传递。如果你的需求是回复这条推文,应该用in_reply_to_tweet_id来指定要回复的推文ID,而不是直接把ID放在位置参数的位置。
修正后的代码
把出错的那行代码修改为:
client.create_tweet(text=f"{random.choice(name)} is {random.choice(adjektiv)}", in_reply_to_tweet_id=tweet.id)
完整的on_tweet方法代码:
def on_tweet(self, tweet): print(tweet.text) client.retweet(tweet.id) client.like(tweet.id) # 修正后的create_tweet调用 client.create_tweet( text=f"{random.choice(name)} is {random.choice(adjektiv)}", in_reply_to_tweet_id=tweet.id ) time.sleep(5)
额外说明
- 如果不需要回复推文,直接去掉
in_reply_to_tweet_id参数即可,只保留text参数:client.create_tweet(text=...) - 确保
client变量在MyStream类的作用域内是可访问的,比如如果是在类外初始化的全局变量,要确认它已经正确完成了授权认证。
内容的提问来源于stack exchange,提问作者EnXan
相关产品推荐
相关产品推荐

