tweepy n'est plus disponible en python 3.x. Je dois utiliser une autre bibliothèque car l'auteur de tweepy l'a déjà fait. Ici, nous utilisons la bibliothèque de sixohsix, qui semble être majeure dans une certaine mesure (Il semble y avoir le principal python-twitter de l'ours, mais j'ai décidé qu'il n'y aurait pas de grande différence d'utilisation entre eux)
https://apps.twitter.com/ Veuillez obtenir l'enregistrement de l'application, la clé du consommateur, la clé secrète du consommateur, etc. à l'adresse. Sans cela, vous ne pouvez pas frapper l'API Twitter en premier lieu. La clé du consommateur et la clé secrète du consommateur ne peuvent pas être secouées dans cet article.
install.sh
pip install twitter
https://github.com/sixohsix/twitter C'est vraiment tout ce qui est écrit ... c'est tout, mais c'est peut-être difficile pour les débutants.
Cela sera expliqué dans l'ordre. Si vous le frappez avec un script, vous devriez prendre un jeton oauth, etc. Il existe une API simple pour récupérer auth_token sur la ligne de commande.
token.py
import os
from twitter import *
#consumer key, consumer secret key from https://apps.twitter.com/
CONSUMER_KEY = "YOUR_CONSUMER_KEYAAAAAAAA"
CONSUMER_SECRET="YOUR_CONSUMER_SECRETAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
MY_TWITTER_CREDS = os.path.expanduser('~/.my_app_credentials')
if not os.path.exists(MY_TWITTER_CREDS):
oauth_dance("My App Name", CONSUMER_KEY, CONSUMER_SECRET, MY_TWITTER_CREDS)
oauth_token, oauth_secret = read_token_file(MY_TWITTER_CREDS)
twitter = Twitter(auth=OAuth(oauth_token, oauth_secret, CONSUMER_KEY, CONSUMER_SECRET))
# Now work with Twitter
twitter.statuses.update(status='Hello, world!')
Cela enregistrera le jeton et le secret dans un fichier appelé ~ / .my_app_credintials. Si le fichier existe déjà, le code sera lu à partir du fichier, donc si vous écrivez ceci dans la mesure où ce n'est pas magique, vous pouvez obtenir un jeton s'il s'agit d'une ligne de commande pour le moment
https://github.com/sixohsix/twitter#the-twitter-class Tout est écrit ici, mais le point est: "Créez une instance de la classe Twitter et frappez-la avec un nom de variable ou un nom de fonction qui lui ressemble selon l'url de l'API REST !!". Comme vous pouvez le voir en lisant la source, l'intention de l'auteur est "Je ne peux l'écrire que de cette façon", donc ce n'est pas du tout hostile.
Pour ceux qui pensent "... je ne sais pas ce que vous dites ()", j'écrirai un peu plus en détail. Veuillez lire ceci en regardant l'exemple de référence de l'URL ci-dessus et Description de l'API REST.
home_timeline.py
# Get your "home" timeline
t.statuses.home_timeline()
Cela renverra le résultat de / statuses / home_timeline.
oembed.py
# to pass in the GET/POST parameter `id` you need to use `_id`
t.statuses.oembed(_id=1234567890)
Cela renverra le résultat de la transmission de l'ID à / statuses / oembed.
updata.py
# Update your status
t.statuses.update(
status="Using @sixohsix's sweet Python Twitter Tools.")
Si c'est un message que tout le monde veut faire, il ressemble à ceci
En tant que processus interne, lorsque vous essayez d'obtenir la propriété de la classe Twitter, dans getattr, la méthode s'exécute à l'intérieur, et chaque propriété est une instance de la classe appelée TwitterCall, elle est donc appelable, donc "()" Si cela fonctionne, la méthode définie par call sera exécutée.
Voir également Plongez dans Python3 pour getattr et call.
Le nom de la variable que vous voulez passer à l'API peut être passé tel quel avec un nom, mais "id" est spécifié par "_id" pour couvrir le mot réservé.
Donc en application
screen_name.py
print(twitter.account.settings()["screen_name"])
Bien que cela ne soit pas écrit dans l'exemple de référence, si vous obtenez votre propre nom_écran, vous pouvez l'obtenir comme ceci.
La raison en est que l'API REST a account / settings et que le json de retour a une variable appelée screen_name. ..
block_list.py
print(twitter.blocks.list())
De cette façon, vous pouvez également obtenir / blocks / list.
Il n'y a donc rien de tel que «appeler cette fonction pour faire une recherche» ou «appeler cette fonction pour obtenir une liste d'amis» dans cette bibliothèque.
As-tu compris? Si l'explication est difficile à comprendre, je l'écrirai un peu plus en détail.
Recommended Posts