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.
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.
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.
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
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).
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.
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.
Les possibilités sont infinies.
Recommended Posts