Отвечайте на твит с помощью 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 является первым, но, похоже, он вообще игнорирует его.Этот скрипт опубликует обновленный статус, но он не связывает его как ответ на tweetID, который я передаю.
API для справки: http://code.google.com/p/tweepy/wiki/APIReference#update_status
У кого-нибудь есть какие-нибудь идеи?Я чувствую, что мне здесь не хватает чего-то простого...
Заранее благодарю.
Решение 3
Ну, тогда это было что -то простое. Мне пришлось указать, кто был направлен на использование @ обозначения.
api.update_status('My status update @whoIReplyTo',tweetId)
Другие советы
Я столкнулся с той же проблемой, но, к счастью, я нашел решение. Вам просто нужно включить пользовательский screen_name в твит:
api.update_status('@<username> My status update', tweetId)
Вы также можете сделать
api.update_status("my update", in_reply_to_status_id = tweetid)
Просто публиковать решение, чтобы никто другой не страдал так, как я. Twitter обновил API и добавил вариант с именем auto_populate_reply_metadata
Все, что вам нужно сделать, это установить это истинно, а остальное оставляет, как и следовало бы. Вот образец:
api.update_status(status = 'your reply', in_reply_to_status_id = tweetid , auto_populate_reply_metadata=True)
Кроме того, STATUS_ID - это длинный набор цифр в конце твит -URL. Удачи!
Я обнаружил, что должен включить идентификационную строку твита (а не фактический идентификационный номер) при указании твита, на который я отвечал
api.update_status('@whoIReplyTo my reply tweet',tweetIdString)
Похоже, это ошибка в 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 вы можете отвечать, не вводя имя пользователя человека, которому вы отвечаете.