2012-02-17 51 views
10

我似乎无法得到tweepy与回复到一个特定的鸣叫工作:回复与Tweepy到鸣叫 - Python的

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

人有什么想法?我觉得我在这里错过简单的东西...

在此先感谢。

+0

那么,这是简单的。我必须指定推文的使用@符号。 api.update_status('我的状态更新@ whoIReplyTo',tweetId) – mcriecken 2012-02-17 03:52:58

回答

9

那么,这是很简单的。我必须指定推文的使用@符号。

api.update_status('My status update @whoIReplyTo',tweetId) 
+1

第一次工作。我错过了推特ID号码。伟大的问题和答案 - 谢谢! – Adjam 2014-03-23 17:38:21

12

你也可以做

api.update_status("my update", in_reply_to_status_id = tweetid) 
+0

这应该是最好的选择 – user3378649 2015-02-23 04:00:14

+1

这不适合我。您确实需要在Tweet中添加用户的句柄才能成为回复。否则,它将算作您的新推文,而不是对现有Tweet的回复。 – 2017-01-28 21:13:56

13

我遇到了同样的问题,但幸运的是我找到了解决办法。你只需要在推文中包含用户的screen_name:

api.update_status('@<username> My status update', tweetId) 
+0

花了几个小时试图找出问题,并最终找到了这个解决方案!谢谢! – thameera 2012-08-12 17:49:11

+0

同样的问题在这里...这是唯一的答案,为我工作。谢谢你的哥们! – CoderOfTheNight 2015-10-25 21:07:32

0

我发现,我必须包括鸣叫的ID字符串(而非实际ID号)规定,我是回答

api.update_status('@whoIReplyTo my reply tweet',tweetIdString) 
0

这似乎是在Tweepy错误鸣叫的时候 - 即使你拨打电话到api.update_status设置正确参数,

api.update_status(status=your_status, in_reply_to_status=tweet_to_reply_to.id) 

鸣叫不会是一个答复。为了得到答复,您需要提及您想要回复的用户指定正确的in_reply_to_status编号。

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上应用程序,您可以回复,而无需嵌入您要回复的人的用户名。