Twython получает твиты от пользователя

Я использую Twython для получения потока твитов. Я использовал этот учебник, ожидайте, что я не использую GPIO.

Мой код следующий:

import time
from twython import TwythonStreamer

TERMS='#stackoverflow'

APP_KEY='MY APP KEY'
APP_SECRET='MY APP SECRET'
OAUTH_TOKEN='MY OATH TOKEN'
OAUTH_TOKEN_SECRET='MY OATH TOKEN SECRET'

class BlinkyStreamer(TwythonStreamer):
    def on_success(self, data):
        if 'text' in data:
            print data['text'].encode('utf-8')
try:
        stream = BlinkyStreamer(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
        stream.statuses.filter(track=TERMS)
except KeyboardInterrupt

Это выводит поток всех твитов, содержащих #stackoverflow. Но я хочу вывести твит, если он от определенного пользователя, например. @СтатусСтака.

Я запускаю это на Raspberry Pi.

Как бы я это сделал? Любая помощь приветствуется!

Редактировать: если есть другой, другой или более простой способ выполнить какой-либо скрипт, когда какой-либо пользователь размещает новый твит, сообщите мне, это также решит мой вопрос!


person B_s    schedule 20.03.2015    source источник


Ответы (2)


Параметр «follow» не работает, как указано выше teknoboy. Правильное использование с идентификатором пользователя, а не с его псевдонимом. Вы можете получить идентификаторы пользователей, используя http://gettwitterid.com/.

Третий доступный параметр — Местоположение — вы можете использовать 1, 2 или 3 из них по желанию. Они соединяются с помощью «ИЛИ», а не «И».

Пример использования:

SearchTerm = 'abracadabra' # Если есть пробелы, то они действуют по ИЛИ, т.е. находят твиты с любым словом, а не со всей строкой.
Tweeter = '25073877' # Это Дональд Трамп, находит твиты от него или его упоминание
Place = '"47.405,-177.296,1mi"' # Отправлено из пределов 1 мили от широты, долготы

stream.statuses.filter(track=SearchTerm, follow=Tweeter, location=Place)

person Ian Carbarns    schedule 29.12.2016

вы должны предоставить фильтру параметр follow для потоковой передачи твитов определенных пользователей. если вы хотите подписаться только на одного пользователя, вы можете определить FOLLOW='StackStatus' и изменить соответствующую строку на
stream.statuses.filter(track=TERMS, follow=FOLLOW)
если вы хотите видеть все твиты пользователя, независимо от ключевого слова, вы можете опустить параметр track:
stream.statuses.filter(follow=FOLLOW)

person teknoboy    schedule 26.03.2015