[PYTHON] Suivi automatique à l'aide de l'API de streaming avec Tweepy

Mise en garde

Code Python3. Dans le cas du système 2, je pense que cela fonctionnera si vous changez un peu la zone autour de super ().

code

import tweepy

consumer_key    = "CONSUMER_KEY"
consumer_secret = "CONSUMER_SECRET"
access_token    = "ACCESS_TOKEN"
access_secret   = "ACCESS_TOKEN_SECRET"

class StreamListener(tweepy.StreamListener):
    def __init__(self, api):
        super().__init__(api)
        self.me = self.api.me()
    def on_event(self, event):
        if event.event == 'follow':
            if self.me.id != source_user["id"]:
                source_user = event.source
                event._api.create_friendship(source_user["id"])
                print("followed by {} {}".format(source_user["name"], source_user["screen_name"]))

if __name__ == "__main__":
    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_secret)
    api = tweepy.API(auth)

    stream = tweepy.Stream(auth=api.auth, listener=StreamListener(api))
    stream.userstream(_with="user")

La description

En plus des tweets, le flux d'utilisateurs a également des événements qui lui sont liés.

La méthode ʻon_event de Tweepy semble se déclencher quand ʻevent arrive.

__init__À l'intérieur


self.me = self.api.me()

on_En cas


if self.me.id != source_user["id"]:

En tant que spécification, «l'utilisateur suit quelqu'un» et «l'utilisateur est suivi» flux comme le même «suivre», et

La description Source Target
J'ai été suivi par quelqu'un Following user Current user
J'ai suivi quelqu'un Current user Followed user

Comme indiqué dans ce tableau, la position à laquelle vous et l'autre partie entrez peut changer en fonction de la situation.

Par conséquent, lorsque vous retournez un suivi, vous essayez de vous suivre. Dans ce cas, une erreur se produira, donc afin de l'éviter, obtenez vos propres informations lors de la création de l'instance, et changez l'ID de source_user en votre propre ʻid chaque fois que l'événement follow` se déroule. Je compare.

De plus, il y a un ʻunfollow dans ʻevent, mais c'est ce qui se passe lorsque vous ne suivez plus un autre utilisateur, et vous ne pouvez pas recevoir le fait que vous n'avez pas été suivi par un autre utilisateur. Ainsi, pour le désabonnement automatique, vous devez accéder à l'API REST en temps opportun.

référence

Streaming message types | Twitter Developers

tweepy/streaming.py at master · tweepy/tweepy

Recommended Posts

Suivi automatique à l'aide de l'API de streaming avec Tweepy
Recevez des tweets avec des mots-clés arbitraires à l'aide de l'API Streaming de Twitter
Créez une API en utilisant hug avec mod_wsgi
Extraire des mots populaires soudains avec l'API de streaming Twitter
Transcription vocale automatique avec l'API Google Cloud Speech
Création récente de classement à l'aide de l'API Qiita avec Python
Essayez de créer une API RESTful avec MVC à l'aide de Flask 1.0.2
Enregistrez des tickets avec l'API de Redmine en utilisant des requêtes Python
Installez tweepy avec pip et utilisez-le pour l'API 1.1
Choisissez uniquement du japonais croustillant avec l'API de streaming Twitter
Extruder avec l'API Fusion360
Essayez d'utiliser Tweepy [Python2.7]
Reconnaissance d'image avec API à partir de zéro connaissance avec AutoML Vision
Créez un robot de réponse automatique en temps réel à l'aide de l'API Twitter Streaming
Trading automatique FX avec algorithme génétique Partie 3 Trading réel avec l'API Oanda
Jouez avec l'API de données YouTube v3 à l'aide du client Python de l'API Google