Im zweiten Teil dieser Artikelserie werde ich dem Raspberry Pi das Twittern beibringen.
Artikelübersicht
Teil 2: Hallo Twitter
Damit der Raspberry automatisch Tweets verschicken kann, benötige ich eine Bibliothek für eine Skriptsprache, die eine Anbindung an den Kurznachrichtendienst bietet. Das von mir genutzte Raspbian hat von Hause aus die Skriptsprache Python an Bord, die mit dem Modul Twython über eine entsprechende Schnittstelle verfügt. Um Twython zu installieren sind folgende Schritte notwendig. Vor der Installation mache ich vorsichtshalber noch ein Update, damit alle Pakete auf dem neuesten Stand sind.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python-setuptools
sudo easy_install pip
sudo pip install twython
Eine Twitter App registrieren
Um die Bibliothek nutzen zu können, muss man zunächst bei Twitter eine eigene App anlegen, über die man Zugriff auf sein Twitter-Konto über die API bekommt. Über diesen Link komme ich auf die entsprechende Seite zur Neuanlage einer App.
Die Pflichtfelder müssen ausgefüllt werden. Der Name der App muss twitterweit eindeutig sein, hier muss man sich also einen einmaligen Namen ausdenken. Nachdem man die Bedingungen akzeptiert und den Neuanlage-Button geklickt hat, ist man schon in den Konfigurationsseiten der eigenen App.
Hier ist es wichtig, dass bei "Access-Level" die Einstellung "Read and Write" gesetzt ist. Wenn nicht, kann man dass über den Reiter "Permissions" noch ändern. Im Reiter "Keys und Access Tokens" kann man sich nun über den entsprechenden Button sein persönliches Access Token erstellen.
Diese Seite lasse ich geöffnet, da ich die Werte gleich beim erstellen meines Python-Skripts benötige.
Skript anlegen
Jetzt lege ich ein Verzeichnis an und erstelle dort ein Python-Skript.
mkdir raspitweet
cd raspitweet
nano raspitweet.py
Das Skript sieht folgendermaßen aus:
#!/usr/bin/env python
import sys
from twython import Twython
CONSUMER_KEY = '***************Deine Daten*****************'
CONSUMER_SECRET = '***************Deine Daten*****************'
ACCESS_KEY = '***************Deine Daten*****************'
ACCESS_SECRET = '***************Deine Daten*****************'
api = Twython(CONSUMER_KEY,CONSUMER_SECRET,ACCESS_KEY,ACCESS_SECRET)
api.update_status(status=sys.argv[1])
Die Werte für die Keys und Secrets übernehme ich natürlich aus der oben geöffneten Webseite. Nach dem Speichern des Skripts mache ich es noch ausführbar:
chmod a+x raspitweet.py
Jetzt erzeugt ein
python raspitweet.py 'Basteln mit dem Rasperry Pi. :-)'
den folgenden Tweet.
Das klappt ja schon prima. Da der Raspi ja auch Bilder twittern soll, muss das Skript noch etwas erweitert werden.
#!/usr/bin/env python
import sys
from twython import Twython
CONSUMER_KEY = '***************Deine Daten*****************'
CONSUMER_SECRET = '***************Deine Daten*****************'
ACCESS_KEY = '***************Deine Daten*****************'
ACCESS_SECRET = '***************Deine Daten*****************'
api = Twython(CONSUMER_KEY,CONSUMER_SECRET,ACCESS_KEY,ACCESS_SECRET)
# upload the last photo taken by fswebcam
photo = open('/home/pi/raspitweet/image.jpg', 'rb')
response = api.upload_media(media=photo)
# finally we send the tweet
api.update_status(status='Der Raspi twittert jetzt auch Bilder.', media_ids=[response['media_id']])
Das Skript nimmt also das Bild mit dem Dateinamen "image.jpg" in unserem Skriptverzeichnis und lädt es zusammen mit einem Text zu Twitter hoch. Ein Start des Skripts mit
python raspitweet.py
hat nun diesen Tweet zur Folge.
Jetzt habe ich alles, um erfolgreich das Bild der Webcam twittern zu können. Mittlerweile hatte ich noch überlegt, ob man vielleicht einige aktuelle Wetterdaten mit in den Tweet nehmen könnte. Also schaue ich in Teil 3 dieser Serie, ob und wie ich mit dem Raspi an Wetterdaten heran komme.