Pergunta

Eu tenho alguns problemas com a API Tweepy.

Estou apenas tentando escrever um pequeno aplicativo que me dê um fluxo de status de um usuário (mais de minério), mas seria bom começar com ;-)

Agora: meu código é assim:

    def main():
       config = ConfigParser.ConfigParser()
       config.read('twitter.cfg')

       username = config.get('Twitter', 'username')
       password = config.get('Twitter', 'password') 
           listener = StreamWatcherListener()

       stream = tweepy.Stream(username, password, listener, timeout=None)
       stream.filter('132897940')

No StreamwatcherListener, tenho um método "on_status" que imprime o texto de um status, sempre que um novo chega (tudo parece funcionar, quando eu tento stream.sample () em vez de stream.filter ())

O ID dado é o meu TestAccount; portanto, sempre que tweet, devo obter alguma resposta no console ... mas nada acontece.

Quando eu tento

curl -d @following http://stream.twitter.com/1/statuses/filter.json -uAnyTwitterUser:Password

No terminal, como pude encontrar na API do Twitter, tudo funciona bem.

Então, talvez eu faça o uso errado do método filter ()-?

alguma sugestão?

-e

Foi útil?

Solução

Eu descobri eu mesmo

a stream.filter() Método precisa de uma matriz

Então eu tive que codificar

stream.filter(['1234567'])

et voilà

Outras dicas

class TweetListener(StreamListener):
    def on_status(self,status):           
        print "TWEET ARRIVED!!!"
        print "Tweet Text : %s" % status.text
        print "Author's name : %s" % status.author.screen_name
        print "Time of creation : %s" % status.created_at
        print "Source of Tweet : %s" % status.source    
        time.sleep(10)       
        return True

    def on_error(self, status):        
       print status
       if status == 420:
            print "Too soon reconnected, Exiting!!"
            return False
        sys.exit()

def search_tweets():
    twitterStream = Stream(connect().auth, TweetListener())        
    twitterStream.filter(track=['Cricket','Maths','Army','Sports'],languages = ["en"],async=True)

Aqui usei o parâmetro assíncrono, ele executa cada fluxo em um encadeamento diferente. Consulte isso link Para documentação ou mais detalhes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top