使用 Tweepy - Python 回复推文
Posted
技术标签:
【中文标题】使用 Tweepy - Python 回复推文【英文标题】:Reply to Tweet with Tweepy - Python 【发布时间】:2012-03-08 12:16:19 【问题描述】:我似乎无法回复特定的推文:
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)
### at this point I've grabbed the tweet and loaded it to JSON...
tweetId = tweet['results'][0]['id']
api.update_status('My status update',tweetId)
api 说它需要可选参数,而 in_reply_to_status_id 是第一个,但它似乎完全忽略了它。此脚本将发布更新状态,但不会将其链接为对我传递的 tweetId 的回复。
参考API:http://code.google.com/p/tweepy/wiki/APIReference#update_status
有人有什么想法吗?我觉得我在这里遗漏了一些简单的东西......
提前致谢。
【问题讨论】:
那么,这很简单。我必须使用 @ 表示法指定推文是针对谁的。 api.update_status('我的状态更新@whoIRplyTo',tweetId) 【参考方案1】:只是发布解决方案,这样其他人就不会像我一样受苦。
Twitter 更新了 API 并添加了一个名为 auto_populate_reply_metadata
的选项
您需要做的就是将其设置为 true,其余部分保持不变。这是一个示例:
api.update_status(status = 'your reply', in_reply_to_status_id = tweetid , auto_populate_reply_metadata=True)
另外,status_id 是推文 URL 末尾的一长串数字。祝你好运!
【讨论】:
这可能应该是新的答案。谢谢。 此解决方案是否在推文中留下评论?这个功能可以“引用转推”吗?【参考方案2】:我遇到了同样的问题,但幸运的是我找到了解决方案。您只需要在推文中包含用户的 screen_name 即可:
api.update_status('@<username> My status update', tweetId)
【讨论】:
花了几个小时试图找出问题所在,终于找到了这个解决方案!谢谢! 这里有同样的问题......这是唯一对我有用的答案。谢谢朋友! THnaks 很多哥们!【参考方案3】:你也可以这样做
api.update_status("my update", in_reply_to_status_id = tweetid)
【讨论】:
这应该是最好的选择 这对我不起作用。您确实需要在推文中添加用户的句柄才能使其成为回复。否则,它将被视为您的新推文,而不是对现有推文的回复。 @DiegoMoraCespedes 这是错误的(至少现在是这样)。您必须添加auto_populate_reply_metadata=True
和in_reply_to_status_id
。这意味着您不必在推文中添加用户的句柄以使其工作。【参考方案4】:
那么,这很简单。我必须使用 @ 表示法指定推文是针对谁的。
api.update_status('My status update @whoIReplyTo',tweetId)
【讨论】:
第一次工作。我错过了推文 ID 号。很好的问答 - 谢谢!【参考方案5】:我发现在指定我要回复的推文时,我必须包含推文的 ID 字符串(而不是实际 ID 号)
api.update_status('@whoIReplyTo my reply tweet',tweetIdString)
【讨论】:
【参考方案6】:这似乎是 Tweepy 中的一个错误 - 即使您使用正确的参数集调用 api.update_status,
api.update_status(status=your_status, in_reply_to_status=tweet_to_reply_to.id)
推文不会是回复。为了得到回复,您需要提及您想要回复的用户并指定正确的 in_reply_to_status id。
reply_status = "@%s %s" % (username_to_reply_to, your_status)
api.update_status(status=reply_status, in_reply_to_status=tweet_to_reply_to.id)
但请记住 - Tweepy 和 Twitter 的服务器仍然强制执行最多 140 个字符,因此请务必检查
len(reply_status) <= 140
再次,我认为这是一个错误,因为在 Twitter 应用上,您可以在不嵌入您要回复的人的用户名的情况下回复。
【讨论】:
以上是关于使用 Tweepy - Python 回复推文的主要内容,如果未能解决你的问题,请参考以下文章
我怎样才能获得超过一周的推文(使用 tweepy 或其他 python 库)