Как использовать параметр count в API потоковой передачи tweepy? - PullRequest
3 голосов
/ 18 августа 2011

Я могу прекрасно использовать потоковый API, когда не включаю параметр count в вызов filter(), но когда я пытаюсь указать, сколько твитов из моей истории я хочу получить, мой потоковый объект возвращает 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 Ответ

7 голосов
/ 18 августа 2011

Stream.filter всегда возвращает None, его задача - просто передать данные в StreamListener.

Ваша проблема в том, что Twitter разрешает параметр count только для определенных «ролей».

Клиенты Firehose, Links, Birddog и Shadow, заинтересованные в захвате всех статусов, должны поддерживать текущую оценку количества полученных статусов в секунду и отмечать время получения последнего статуса.После переподключения клиент может затем оценить соответствующее отставание для запроса. Обратите внимание, что параметр count не разрешен в других местах, включая дорожку, семпл и роль доступа по умолчанию.

По этой причине вы получаете ошибку 413, когдавы пытаетесь использовать параметр count - вы играете роль "доступ по умолчанию".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...