Я пытаюсь написать свой первый твиттер-бот, и то, что я специально хочу, это ответить, когда какой-то конкретный пользователь что-то твиттит. Вместо поиска каждого пользователя, который упоминает слово «taco», я хочу только искать, когда в небольшом списке людей упоминается «taco». Например, мой бот ищет только твиты от Боба и Сью, которые упоминают «taco», но не твиты от Фреда. Я не нахожу, что мне нужно.Twitter bot - Ответы для конкретных пользователей с помощью Tweepy
ответ
Из документации Tweepy
вы, вероятно, должны использовать метод API.user_timeline
, чтобы прочитать определенные твиты пользователей.
API.user_timeline ([идентификатор_пользователь/screen_name])
Возвращает 20 последних статусы, размещенных от аутентифицируются пользователя или пользователя, указанного.
Параметры:
user_id - Определяет идентификатор пользователя
screen_name - Задает имя экрана пользователя
Вы можете достичь этого через user timeline API конечной точки; однако, в зависимости от того, сколько терминов и пользователей вы хотите отслеживать, вам придется беспокоиться о ограничениях скорости (предельная скорость конечной точки пользовательской временной шкалы довольно высока, 300/app auth/15 mins, 150/user auth/15 mins = 450/15 мин), а также тот факт, что вам нужно будет вызвать конечную точку вручную через некоторый промежуток времени.
Другой способ сделать это - использовать конечную точку потокового API, в частности, user stream. Следуйте за каждым, на что хотите ответить, а затем создайте некоторые правила для определенных фраз. Как следовали за пользователями твиты, они должны переходить к конечной точке пользовательского потока. Вам просто нужно запустить прослушиватель с некоторой логикой для отслеживаемых пользователей/фраз.
track = {
'taco': ['Bob', 'Sue'],
'salsa': ['John', 'Steve'],
'guacamole': ['Mary', 'Fred']
}
Вы бы подкласс Tweepy-х StreamListener
:
class TacoListener(tweepy.StreamListener):
def on_status(self, status):
# Note, I rolled my own Twitter API wrapper, and just had a glance at the Tweepy docs, so some of this syntax might be incorrect, change it as required
# I think Tweepy has syntax like: status.text; I'll just refer to the fields as they appear in the Twitter JSON payload
for k, v in track.items():
if k in status.get('text') and status.get('screen_name') in v:
tweet = ""
for name in v:
tweet += "@" + name
tweet += " are talking about " + k + "! Yum."
api.update_status(status=tweet)
- 1. Извлечение данных Twitter с помощью Tweepy
- 2. Фильтрация данных Twitter с помощью Tweepy
- 3. Получите всех друзей для нескольких пользователей с помощью tweepy
- 4. итерации через поток Twitter с помощью tweepy
- 5. Избегайте ограничений API Twitter с помощью Tweepy
- 6. Tweepy Twitter получить ответы на все твиты конкретного пользователя
- 7. Получить местоположение конкретных твиты из Twitter, используя Tweepy
- 8. twitter bot с api
- 9. Полный список twitter «friends» с помощью python и tweepy
- 10. Получите ответы в Twitter с помощью LinqToTwitter
- 11. Как получить число подписчиков на twitter с помощью tweepy
- 12. Twitter bot API
- 13. Twitter код ошибки 429 с Tweepy
- 14. Tweepy - Twitter API 1.1
- 15. возвращающие пользователей твиты с tweepy
- 16. Retweeters статуса Twitter в Tweepy
- 17. Работа с twitter Ответы JSON
- 18. Python twitter bot issue
- 19. Automate Twitter Bot
- 20. Twitter bot using Oauth
- 21. PHP Twitter Bot (ConceptScript)
- 22. Состояние сохранения Python в цикле for для twitter bot
- 23. Twitter Стрим не работает для Tweepy
- 24. Тест для конкретных пользователей с cancan
- 25. Исключить ретвиты из twitter streaming api с помощью tweepy
- 26. Twitter API - не собирая все твиты с помощью Tweepy
- 27. tweepy/twitter api тип ошибки
- 28. Определить отношение twitter через tweepy
- 29. Извлечь 1000 URI из Twitter с помощью Tweepy и Python
- 30. Получите все упоминания twitter, используя tweepy для пользователей с миллионами подписчиков
Вы должны показать нам свой код. –