Accéder à l'API Twitter avec Python

Accès à l'API Twitter depuis Python. Prend en charge Python 2 et 3.

Il y a aussi python-twitter, mais en gros, il vous suffit d'envoyer une requête HTTP et d'obtenir JSON, alors utilisez la bibliothèque dédiée à Twitter. Je pensais que ce n'était pas là, alors je l'ai écrit moi-même. Seule l'authentification OAuth utilise une bibliothèque distincte.

Bibliothèque OAuth

Vous avez besoin de l '** authentification OAuth ** pour accéder à Twitter. La méthode d'authentification est si compliquée que les gens ordinaires utilisent des bibliothèques.

Cette fois, j'utiliserai Requests-OAuthlib, qui est auto-identifié comme "OAuth pour les humains". Je ne sais pas quel genre de créatures envisagent les autres bibliothèques.

Enregistrement de l'application

L'enregistrement de l'application est nécessaire pour accéder à l'API Twitter. Quand tu as fini ça

Deux clés sont émises. De plus, pour chaque utilisateur de l'application

Deux clés sont émises. Vous avez besoin de ces quatre clés pour accéder à l'API Twitter.

Comment l'obtenir [this](http://website-planner.com/twitter%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC % E3% 82% B7% E3% 83% A7% E3% 83% B3% E3% 81% AE% E4% BD% 9C% E6% 88% 90% EF% BC% 88consumer-key% E3% 80% 81consumer -voir secret% E3% 80% 81 jeton d'accès% E3% 80% 81 jeton d'accès secret /).

L'enregistrement de l'application en lui-même est gratuit, mais il semble qu'il soit devenu nécessaire d'enregistrer le numéro de mobile à partir de février 2014 environ. Je ne connais pas les détails, donc ggr.

Publier un tweet

Une fois que vous avez obtenu la clé, écrivez le code immédiatement. Veuillez changer les parties de «CK, CS, AT, AS» en votre propre clé selon le cas.

tweet.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

from requests_oauthlib import OAuth1Session

CK = 'XXXXXXXXXXXXXXXXXXXXXX'                             # Consumer Key
CS = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'         # Consumer Secret
AT = 'XXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' # Access Token
AS = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'         # Accesss Token Secert

#URL pour publier des tweets
url = "https://api.twitter.com/1.1/statuses/update.json"

#Corps du Tweet
params = {"status": "Hello, World!"}

#Méthode de publication par POST avec authentification OAuth
twitter = OAuth1Session(CK, CS, AT, AS)
req = twitter.post(url, params = params)

#Vérifiez la réponse
if req.status_code == 200:
	print ("OK")
else:
	print ("Error: %d" % req.status_code)

Les bases sont comme ça. Si vous souhaitez ajouter une image, réécrivez la partie publiée comme ceci.

tweet_with_image.py


#Corps du Tweet
files = {
	"status": "Hello, World!",
	"media[]": open("image.png ", "rb")
}

#Méthode de publication par POST avec authentification OAuth
twitter = OAuth1Session(CK, CS, AT, AS)
req = twitter.post(url, files = files)

** * Ajouté le 27/04/2015 ** Il semble que les spécifications de publication d'images aient changé. Voir ici → Tweet avec image en Python

Obtenir la chronologie

Il n'y a pas de grande différence sauf que l'URL change et que POST devient GET. La valeur de retour est JSON et 20 tweets sont au format liste. Seul le texte est affiché ici, mais il comprend également de nombreuses méta-informations telles que les informations sur l'utilisateur, l'heure du tweet et le nombre de favoris.

timeline.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

from requests_oauthlib import OAuth1Session
import json

CK = 'XXXXXXXXXXXXXXXXXXXXXX'                             # Consumer Key
CS = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'         # Consumer Secret
AT = 'XXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' # Access Token
AS = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'         # Accesss Token Secert

#URL pour obtenir la chronologie
url = "https://api.twitter.com/1.1/statuses/home_timeline.json"

#Il n'y a pas de paramètres particuliers
params = {}

#OBTENIR avec OAuth
twitter = OAuth1Session(CK, CS, AT, AS)
req = twitter.get(url, params = params)

if req.status_code == 200:
	#La réponse étant au format JSON, analysez-la
	timeline = json.loads(req.text)
	#Afficher le corps de chaque tweet
	for tweet in timeline:
		print(tweet["text"])

else:
	#En cas d'erreur
	print ("Error: %d" % req.status_code)

Il n'y a pas besoin de paramètres, mais vous pouvez définir la plage d'identifiants de tweet à acquérir (attribués par ordre chronologique) et le nombre de tweets (standard 20, maximum 200).

Autres API

Après cela, vous pouvez presque tout faire en réécrivant l'URL et les paramètres. Cliquez ici pour une liste des API fournies. (Anglais) https://dev.twitter.com/docs/api/1.1

L'API "unfollow" est "friendships / destroy", que j'ai vu plusieurs fois.

Restrictions d'API notoires

Twitter a une quantité généreuse d'API, donc il peut être fonctionnellement presque identique à un client officiel. Cependant, il y a une limite au nombre de demandes. En particulier, la chronologie d'accueil est très stricte ** jusqu'à 15 fois en 15 minutes **, il n'est donc pas possible de mettre à jour la chronologie toutes les quelques secondes.

Le nombre restant d'API et l'heure de la prochaine mise à jour sont stockés dans l'en-tête de la demande.

#OBTENIR avec OAuth
twitter = OAuth1Session(CK, CS, AT, AS)
req = twitter.get(url, params = params)

if req.status_code == 200:

	#Repos API
	limit = req.headers['x-rate-limit-remaining']
	#Temps de mise à jour de la limite de l'API(UNIX time)
	reset = req.headers['x-rate-limit-reset']

	print ("API remain: " + limit)
	print ("API reset: " + reset)

Comme moyen de surmonter les restrictions de l'API

Il y a une telle chose.

Que puis-je faire après ça

Les possibilités sont infinies.

Recommended Posts

Accéder à l'API Twitter avec Python
Tweet à l'aide de l'API Twitter en Python
Obtenir l'API arXiv en Python
Frappez l'API Sesami en Python
Accédez à l'API Web en Python
Essayez d'utiliser l'API Wunderlist en Python
Essayez d'utiliser l'API Kraken avec Python
API Evernote en Python
API C en Python 3
Essayez d'utiliser l'API BitFlyer Ligntning en Python
Conseils pour accéder à l'API ATND avec Python
Accédez à l'API Firebase Dynamic Links en Python
Essayez d'utiliser l'API DropBox Core avec Python
Exemple de code pour obtenir oauth_token et oauth_token_secret de l'API Twitter en Python 2.7
Trouver des erreurs en Python
Essayez d'utiliser l'API Twitter
Essayez d'utiliser l'API Twitter
API Blender Python dans Houdini (Python 3)
Appelez l'API avec python3.
Explorez l'URL contenue dans le tweet Twitter avec python
Utiliser l'API de recherche de la Bibliothèque du Parlement national en Python
Essayez d'utiliser l'API Twitter rapidement et facilement avec Python
Obtenez votre fréquence cardiaque à partir de l'API fitbit en Python!
Python dans le navigateur: la recommandation de Brython
Enregistrez le fichier binaire en Python
[Python] Accédez à l'API Google Translation
Obtenez le chemin du bureau en Python
Obtenez le chemin du script en Python
Dans la commande python, python pointe vers python3.8
Implémenter le modèle Singleton en Python
Essayez l'accès au registre PLC en Python
Accédez à l'API Etherpad-lite avec Python
Créez Gmail en Python sans utiliser l'API
Utilisez l'API Flickr de Python
[API LINE Messaging] Émettre un jeton d'accès au canal v2.1 en Python
J'ai écrit la file d'attente en Python
Calculer le mois précédent en Python
Examiner la classe d'un objet avec python
Obtenez le chemin du bureau en Python
Implémentez rapidement l'API REST en Python
La première étape de Python Matplotlib
J'ai écrit la pile en Python
Maîtriser le module lowref en Python
Un moyen simple d'accéder à l'API produit Amazon en Python
Exporter le contenu acquis par Twitter Streaming API au format JSON
Accédez à l'API New Relic en Python pour obtenir l'état du serveur
Une classe qui résume les méthodes fréquemment utilisées dans l'api twitter (python)
Jouez en accédant à l'API Riot Games en Python Première moitié
Collecter des informations sur Twitter avec Python (API Twitter)
Apprenez le modèle de conception "Prototype" avec Python
Apprenez le modèle de conception "Builder" avec Python
Accéder à l'API Docker Remote avec des requêtes
Fonctionnement de la souris à l'aide de l'API Windows en Python
Charger le SDK Python distant avec IntelliJ
Vérifiez le comportement du destroyer en Python
Apprenez le modèle de conception "Flyweight" en Python