2012-09-25 30 views
5

Estoy tratando de acceder a la transmisión de Twitter que tenía trabajando anteriormente mientras usaba Tweepy incorrectamente. Ahora que entiendo cómo Tweepy está destinado a ser usado, escribí el siguiente módulo Stream.py. Cuando lo ejecuto, obtengo el código de error 401 que me dice que mi autenticación ha sido rechazada. Pero lo tuve trabajando antes con el mismo token de consumidor y secreto. ¿Algunas ideas?Twitter Streaming API con Tweepy rechaza oauth

from tweepy.streaming import StreamListener 
from tweepy import OAuthHandler 
from tweepy import Stream 
from tweepy import TweepError 
from tweepy import error 

#Removed. I have real keys and tokens 
consumer_key = "***" 
consumer_secret = "***" 
access_token="***" 
access_token_secret="***" 

class CustomListener(StreamListener): 
    """ A listener handles tweets are the received from the stream. 
     This is a basic listener that just prints received tweets to stdout.""" 

    def on_status(self, status): 
     # Do things with the post received. Post is the status object. 
     print status.text 
     return True 

    def on_error(self, status_code): 
     # If error thrown during streaming. 
     # Check here for meaning: 
     # https://dev.twitter.com/docs/error-codes-responses 
     print "ERROR: ",; print status_code 
     return True 

    def on_timeout(self): 
     # If no post received for too long 
     return True 

    def on_limit(self, track): 
     # If too many posts match our filter criteria and only a subset is 
     # sent to us 
     return True 

    def filter(self, track_list): 
     while True: 
      try: 
       self.stream.filter(track=track_list) 
      except error.TweepError as e: 
       raise TweepError(e) 

    def go(self): 
     listener = CustomListener() 
     auth = OAuthHandler(consumer_key, consumer_secret) 
     self.stream = Stream(auth,listener,timeout=3600) 
     listener.filter(['LOL']) 

if __name__ == '__main__': 
    go(CustomListener) 

Respuesta

3

Para cualquier persona que pasa a tener el mismo problema, debería haber añadido esta línea después de la autenticación se ha inicializado:

auth.set_access_token(access_token, access_token_secret)