如何在tweepy的流API中使用'count'参数?

时间:2011-08-18 17:10:01

标签: python twitter tweepy

当我在count调用中未包含filter()参数时,我可以正常使用流API,但是当我尝试指定我希望收到的历史记录中有多少推文时,我的stream对象返回None

import tweepy
from tweepy.streaming import StreamListener, Stream

class Listener (StreamListener):
    def on_status(self, status):
        print '-' * 20
        print status.text
        return

def get_tweets(request):
    # if request.is_ajax():
    # All keys and secrets are declared here, but were removed for security reasons.

    auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
    auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
    api = tweepy.API(auth)
    listener = Listener()
    stream = Stream(auth, listener)
    stream.filter(follow=("14739093",), count=-5)

我也尝试了以下内容,看看它返回了什么。

>>> something = stream.filter(follow=("14739093",), count=-5)
>>> print something
None

感谢您的帮助!

1 个答案:

答案 0 :(得分:7)

Stream.filter始终返回None,其工作只是将数据传递给StreamListener

你的问题是Twitter只允许某些“角色”的count参数。

  

对捕获所有状态感兴趣的Firehose,Links,Birddog和Shadow客户应保持当前每秒收到的状态数的估计值,并记录收到最后一个状态的时间。重新连接后,客户端可以估计要请求的相应积压。 请注意,其他地方不允许使用count参数,包括track,sample和默认访问角色。

这是您在尝试使用413参数时遇到count错误的原因 - 您处于“默认访问”角色。