Question

J'ai quelques problèmes avec l'api tweepy.

Je suis tryin d'écrire une petite application qui me fait un flux de statuts d'un utilisateur (plus de minerai), mais on serait bien de commencer par; -)

: mon code est comme ça:

    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')

StreamWatcherListener J'ai une méthode « on_status » qui imprime le texte d'un statut, chaque fois qu'un nouveau arrive (tout semble fonctionner, lorsque je tente stream.sample () au lieu de stream.filter ())

l'ID donné est mon testaccount, donc chaque fois que je tweete que je devrais obtenir une réponse dans la console .... mais rien ne se passe.

lorsque je tente

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

dans le terminal que je pouvais trouver dans le twitter api, tout fonctionne bien.

Alors peut-être que je fais une mauvaise utilisation du filtre () - méthode

?

suggestions?

-Andy

Était-ce utile?

La solution

Je l'ai trouvé moi-même

la méthode de stream.filter() a besoin d'un tableau

donc je devais le code

stream.filter(['1234567'])

et le tour est joué

Autres conseils

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)

Ici, j'utilise le paramètre async, il exécute chaque flux sur un thread différent. Reportez-vous cette lien pour la documentation ou plus de détails.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top