用Tweepy回复Tweet - Python

mcr*_*ken 18 python twitter tweepy

回复一个特定的推文时,我似乎无法解决这个问题:

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)
Run Code Online (Sandbox Code Playgroud)

api说它需要可选参数而in_reply_to_status_id是第一个,但它似乎完全忽略了它.此脚本将发布更新状态,但它不会将其链接为对我传递的tweetId的回复.

API供参考:http://code.google.com/p/tweepy/wiki/APIReference#update_status

有人有主意吗?我觉得我在这里错过了一些简单的东西......

提前致谢.

小智 18

我遇到了同样的问题,但幸运的是我找到了解决方案.您只需要在推文中包含用户的screen_name:

api.update_status('@<username> My status update', tweetId)
Run Code Online (Sandbox Code Playgroud)


Dav*_*per 13

你也可以

api.update_status("my update", in_reply_to_status_id = tweetid)
Run Code Online (Sandbox Code Playgroud)

  • 这对我不起作用。您确实需要在 Tweet 中添加用户的句柄才能将其作为回复。否则,它将被视为您的新推文,而不是对现有推文的回复。 (2认同)

mcr*_*ken 12

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

api.update_status('My status update @whoIReplyTo',tweetId) 
Run Code Online (Sandbox Code Playgroud)


小智 5

只需发布解决方案,就不会让其他人像我那样受苦。Twitter更新了API,并添加了一个名为auto_populate_reply_metadata

您需要做的就是将其设置为true,其余的都应保留。这是一个示例:

api.update_status(status = 'your reply', in_reply_to_status_id = tweetid , auto_populate_reply_metadata=True)
Run Code Online (Sandbox Code Playgroud)

另外,status_id是tweet URL末尾的一长串数字。祝好运!

  • 这可能应该是新的答案。谢谢。 (2认同)