Подтвердить что ты не робот

Ответить в Твитнуть с Tweepy - Python

Я не могу заставить 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)

Api говорит, что он принимает необязательные параметры, а in_reply_to_status_id является первым, но, похоже, он вообще игнорирует его. Этот script будет публиковать обновленный статус, но он не связывает его как ответ на tweetId, который я передаю.

API для справки: http://code.google.com/p/tweepy/wiki/APIReference#update_status

У кого-нибудь есть идеи? Я чувствую, что мне не хватает чего-то простого здесь...

Спасибо заранее.

4b9b3361

Ответ 1

Ну, тогда это было что-то простое. Я должен был указать, кто из твиттов был направлен на использование нотации @.

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

Ответ 2

Я столкнулся с той же проблемой, но, к счастью, нашел решение. Вам просто нужно указать имя пользователя user_name в твиттере:

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

Ответ 3

Вы также можете сделать

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

Ответ 4

Я обнаружил, что для включения твита, на который я отвечал

я должен был указать строку идентификатора твита (а не фактический идентификационный номер)
api.update_status('@whoIReplyTo my reply tweet',tweetIdString) 

Ответ 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)

Кроме того, status_id - это длинный набор цифр в конце URL-адреса твита. Удачи!

Ответ 6

Кажется, это ошибка в 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 вы можете ответить, не вставляя имя пользователя, которому вы отвечаете.