Twython从用户那里得到推文

时间:2015-03-20 16:36:30

标签: python twitter twython

我正在使用Twython来获取推文流。我使用了this教程,期望我没有使用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的所有推文的流。但我想输出推文,如果它来自某个用户,例如@StackStatus。

我在Raspberry Pi上运行它。

我该怎么做?任何帮助表示赞赏!

编辑:如果在某个用户发布新推文时有另一种,其他或更简单的方法来执行某些脚本,请告诉我,这也可以解决我的问题! < / p>

2 个答案:

答案 0 :(得分:1)

&#39;关注&#39;参数不能如上所述由teknoboy工作。正确使用是使用用户的ID,而不是他们的屏幕名称。您可以使用http://gettwitterid.com/获取用户ID。

可用的第三个参数是位置 - 您可以根据需要使用其中的1,2或3。它们与&#34; OR&#34;,而不是&#39; AND&#39;。

相关联

示例用法:

  

SearchTerm =&#39; abracadabra&#39; #如果包含空格,则它们是“或”,即查找包含任何一个单词的推文,而不是整个字符串。
  Tweeter =&#39; 25073877&#39; #这是唐纳德特朗普,发现他的推文或提到他   地点=&#39;&#34; 47.405,-177.296,1mi&#34;&#39; #从Lat,Long左1英里内发送

     

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

答案 1 :(得分:0)

您应该为过滤器提供follow参数来流式传输特定用户的推文。 如果您只想关注一个用户,您可以定义 FOLLOW='StackStatus' 并将适当的行更改为
stream.statuses.filter(track=TERMS, follow=FOLLOW)
如果您希望查看所有用户的推文,无论关键字如何,您都可以省略track参数:
stream.statuses.filter(follow=FOLLOW)