IoT Geräte twittern lassen
Das Twittern meiner IoT Geräte habe ich bisher über IFTTT und den Maker Channel erledigt. So richtig flexibel war das nicht. Mit den Feinstaub-Basteleien habe ich ein paar Python-Skripte erstellt und bin dabei auf Tweepy gestossen.
@sbamueller aus Freiburg hat mir Roh-Skripte und Ideen geliefert. Eines davon hatte anonymisierte secrets und token für Tweepy enthalten. Da ich es noch nicht installiert hatte, kannte ich die API nicht genau und lag mit meinen ersten Tests falsch.
Zudem fand ich es gefährlich, die Tokens im Code zu haben, den ich vielleicht doch mal jemandem zuschicke. Da ich mehrere Twitter-Accounts habe müsste ich über Textbausteine die jeweiligen Secret und Token-Sets passend einlesen und beim Verschicken eben wieder anonymisieren.
Das einlesen war die Idee. Ich erstelle mir ein Modul mit den Variablen für die jeweiligen Accounts.
Klappt gut, ist einfach anzuwenden und verhindert, dass ich versehentlich alles preisgebe.
So habe ich es gemacht:
#!/usr/bin/env python2.7
# tweet.py by Alex Eames http://raspi.tv/?p=5908
# modified example by peter www.nc-x.com
import tweepy
import sys
import authTwitter
ident = authTwitter.auth_Hochnebelfrei()
consumer_key = ident[0]
consumer_secret = ident[1]
access_token = ident[2]
access_token_secret = ident[3]
# OAuth process, using the keys and tokens
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
# Creation of the actual interface, using authentication
api = tweepy.API(auth)
tweet_text = "mein erster #Raspberry Tweet mit OAuth als Import"
api.update_status(status=tweet_text)
Dieses einfache Skript kann ich problemlos weitergeben, es enthält keine Details zu meinen Twitter Authentifizierungen.
Die Details hole ich mir aus der authTwitter.py die wie folgt aussieht:
Von dort hole ich mir die passenden Daten für den Account Alpensichtung oder Hochnebelfrei mit
- ident = authTwitter.auth_Alpensichtung()
- ident = authTwitter.auth_Hochnebelfrei()
Schreibe einen Kommentar