Greifen Sie mit Python auf die Twitter-API zu

Zugriff auf die Twitter-API von Python. Unterstützt sowohl Python 2 als auch 3.

Es gibt auch python-twitter, aber im Grunde senden Sie einfach eine HTTP-Anfrage und erhalten JSON. Verwenden Sie also die Bibliothek für Twitter. Ich dachte, es wäre nicht da, also habe ich es selbst geschrieben. Nur die OAuth-Authentifizierung verwendet eine separate Bibliothek.

OAuth-Bibliothek

Sie benötigen eine OAuth-Authentifizierung, um auf Twitter zugreifen zu können. Die Authentifizierungsmethode ist so kompliziert, dass normale Leute Bibliotheken verwenden.

Dieses Mal werde ich Requests-OAuthlib verwenden, das selbst als "OAuth für Menschen" identifiziert wird. Ich weiß nicht, welche Art von Kreaturen sich andere Bibliotheken vorstellen.

Anmeldung zur Bewerbung

Für den Zugriff auf die Twitter-API ist eine Anwendungsregistrierung erforderlich. Wenn Sie damit fertig sind

Es werden zwei Schlüssel ausgegeben. Darüber hinaus für jeden Benutzer der App

Es werden zwei Schlüssel ausgegeben. Sie benötigen diese vier Schlüssel, um auf die Twitter-API zuzugreifen.

Wie man es bekommt [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% 88Konsumentenschlüssel% E3% 80% 81Konsument -sehe geheim% E3% 80% 81access-token% E3% 80% 81access-token-secret /).

Die Registrierung der Anwendung selbst ist kostenlos, es scheint jedoch notwendig zu sein, die Handynummer ab etwa Februar 2014 zu registrieren. Ich kenne die Details nicht, also ggr.

Poste einen Tweet

Sobald Sie den Schlüssel erhalten haben, schreiben Sie den Code sofort. Bitte ändern Sie die Teile von CK, CS, AT, AS nach Bedarf in Ihren eigenen Schlüssel.

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 zum Posten von Tweets
url = "https://api.twitter.com/1.1/statuses/update.json"

#Tweet Körper
params = {"status": "Hello, World!"}

#Post-by-POST-Methode mit OAuth-Authentifizierung
twitter = OAuth1Session(CK, CS, AT, AS)
req = twitter.post(url, params = params)

#Überprüfen Sie die Antwort
if req.status_code == 200:
	print ("OK")
else:
	print ("Error: %d" % req.status_code)

Die Grundlagen sind so. Wenn Sie ein Bild hinzufügen möchten, schreiben Sie den veröffentlichten Teil wie folgt um.

tweet_with_image.py


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

#Post-by-POST-Methode mit OAuth-Authentifizierung
twitter = OAuth1Session(CK, CS, AT, AS)
req = twitter.post(url, files = files)

** * Hinzugefügt am 27.04.2015 ** Es scheint, dass sich die Spezifikationen für das Posten von Bildern geändert haben. Siehe hier → Tweet mit Bild in Python

Holen Sie sich die Zeitleiste

Es gibt keinen großen Unterschied, außer dass sich die URL ändert und POST zu GET wird. Der Rückgabewert ist JSON und 20 Tweets sind im Listenformat. Hier wird nur der Text angezeigt, aber er enthält auch viele Metainformationen wie Benutzerinformationen, Tweet-Zeit und Anzahl der Favoriten.

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 zum Abrufen der Timeline
url = "https://api.twitter.com/1.1/statuses/home_timeline.json"

#Es gibt keine bestimmten Parameter
params = {}

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

if req.status_code == 200:
	#Da die Antwort im JSON-Format vorliegt, analysieren Sie sie
	timeline = json.loads(req.text)
	#Zeigen Sie den Text jedes Tweets an
	for tweet in timeline:
		print(tweet["text"])

else:
	#Im Fehlerfall
	print ("Error: %d" % req.status_code)

Es sind keine Parameter erforderlich, Sie können jedoch den Bereich der zu erfassenden Tweet-IDs (in chronologischer Reihenfolge zugewiesen) und die Anzahl der Tweets (Standard 20 Stück, maximal 200 Stück) festlegen.

Andere APIs

Danach können Sie fast alles tun, indem Sie die URL und die Parameter neu schreiben. Klicken Sie hier, um eine Liste der bereitgestellten APIs anzuzeigen. (Englisch) https://dev.twitter.com/docs/api/1.1

Die "unfollow" API ist "Freundschaften / Zerstören", was ich schon oft gesehen habe.

Notorische API-Einschränkungen

Twitter verfügt über eine großzügige Menge an APIs, sodass es funktional fast genauso sein kann wie ein offizieller Client. Die Anzahl der Anforderungen ist jedoch begrenzt. Insbesondere ist die Home-Timeline sehr streng ** bis zu 15 Mal in 15 Minuten **, so dass es nicht möglich ist, die Timeline alle paar Sekunden zu aktualisieren.

Die verbleibende Anzahl von APIs und der Zeitpunkt der nächsten Aktualisierung werden im Anforderungsheader gespeichert.

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

if req.status_code == 200:

	#API-Rest
	limit = req.headers['x-rate-limit-remaining']
	#Aktualisierungszeit für API-Limit(UNIX time)
	reset = req.headers['x-rate-limit-reset']

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

Um API-Einschränkungen zu überwinden

Da ist so etwas.

Was kann ich danach tun?

Die Möglichkeiten sind endlos.

Recommended Posts

Greifen Sie mit Python auf die Twitter-API zu
Tweet mit der Twitter-API in Python
Abrufen der arXiv-API in Python
Klicken Sie in Python auf die Sesami-API
Klicken Sie auf die Web-API in Python
Versuchen Sie es mit der Wunderlist-API in Python
Versuchen Sie, die Kraken-API mit Python zu verwenden
Evernote-API in Python
C-API in Python 3
Versuchen Sie es mit der BitFlyer Ligntning API in Python
Tipps zum Erreichen der ATND-API mit Python
Klicken Sie in Python auf die Firebase Dynamic Links API
Versuchen Sie, die DropBox Core-API mit Python zu verwenden
Codebeispiel zum Abrufen von oauth_token und oauth_token_secret der Twitter-API in Python 2.7
Finde Fehler in Python
Versuchen Sie es mit der Twitter-API
Versuchen Sie es mit der Twitter-API
Blender Python API in Houdini (Python 3)
Rufen Sie die API mit python3 auf.
Crawlen Sie die im Twitter-Tweet enthaltene URL mit Python
Verwenden Sie die Such-API der National Parliament Library in Python
Versuchen Sie, mit Python schnell und einfach auf die Twitter-API zuzugreifen
Holen Sie sich Ihre Herzfrequenz von der Fitbit-API in Python!
Python im Browser: Brythons Empfehlung
Speichern Sie die Binärdatei in Python
[Python] Klicken Sie auf die Google Übersetzungs-API
Holen Sie sich den Desktop-Pfad in Python
Holen Sie sich den Skriptpfad in Python
Im Python-Befehl zeigt Python auf Python3.8
Implementieren Sie das Singleton-Muster in Python
Versuchen Sie den Zugriff auf das SPS-Register in Python
Klicken Sie mit Python auf die Etherpad-Lite-API
Erstellen Sie Google Mail in Python ohne Verwendung der API
Verwenden Sie die Flickr-API von Python
[LINE Messaging API] Geben Sie das Kanalzugriffstoken v2.1 in Python aus
Ich habe die Warteschlange in Python geschrieben
Berechnen Sie den Vormonat in Python
Untersuchen Sie die Klasse eines Objekts mit Python
Holen Sie sich den Desktop-Pfad in Python
Implementieren Sie die REST-API schnell in Python
Der erste Schritt von Python Matplotlib
Ich habe den Stack in Python geschrieben
Beherrsche das schwache Ref-Modul in Python
Eine einfache Möglichkeit, die Amazon-Produkt-API in Python aufzurufen
Exportieren Sie die von der Twitter Streaming API erfassten Inhalte im JSON-Format
Klicken Sie in Python auf die New Relic-API, um den Status des Servers abzurufen
Eine Klasse, die häufig verwendete Methoden in Twitter API (Python) zusammenfasst.
Spielen Sie, indem Sie die Riot Games-API in Python First Half drücken
Sammeln von Informationen von Twitter mit Python (Twitter API)
Lernen Sie das Entwurfsmuster "Prototype" mit Python
Lernen Sie das Entwurfsmuster "Builder" mit Python
Greifen Sie mit Requests auf die Docker Remote API zu
Mausbedienung mit Windows-API in Python
Laden Sie das Remote-Python-SDK mit IntelliJ
Überprüfen Sie das Verhalten des Zerstörers in Python
Lernen Sie das Designmuster "Flyweight" in Python