Teletwitter

Ja, das ist total bekloppt. Nein, es hat keinen Mehrwert. Ich habe es nur gebaut, weil ich mal mit der Twitter API spielen wollte. Ja, ich weiß es ist nicht 100%ig wie viele Videotext, ja, nicht alles funktioniert, nein, man kann es (vermutlich) nicht mit Mobilgeräten ohne Tastatur benutzen.

Nachdem das geklärt wäre, kommen wir dazu worum es eigentlich geht: Ich habe einen Web-Twitterclient gebaut, der aussieht wie Videotext und sich auch teilweise so verhält. Seit 40 Jahren gibt es in Deutschland den Videotext (eng. Teletext). Videotext ist eine Funktion, die es auch heute in modernen Fernsehern gibt. Man kann ihn über die Videotext taste (meist ein kleiner Bildschirm mit Strichen drin) aufrufen, hier über Seiten mit dreistelligen Seitenzahlen (100-899) navigieren. Die Seiten werden über das normale TV-Signal ausgegeben. TV Geräte mussten früher durch alle Seiten durchblättern um die richtige Seite zu finden. Auf die ganzen technischen Details und die Tatsache, dass modernere Geräte Seiten auch zwischenspeicherten, damit der Suchlauf nicht so lange dauerte und man direkt zu Seiten springen kann, gehe ich jetzt nicht ein. Das kann sicher auf Wikipedia oder so nachgelesen werden. Jedenfalls habe ich einen Twitterclient gebaut der sich ähnlich verhält.

Statt zu klicken muss man bei teletwitter Seitenzahlen eingeben. Um die Timeline der Nutzer darstellen zu können, ist ein sog. Token nötig, den man von Twitter bekommt, wenn der User den Zugriff erlaubt. Das passiert über das bekannte “Authorize App” direkt von Twitter. Wenn der User nicht eingeloggt ist, muss er hier Username und Passwort eingeben. Das Passwort wird dabei nie an die anfragende App (hier teletwitter) übertragen.

Leider kann ich nicht bestimmen, welche Funktionen ich mit dem Token, den ich übertragen bekomme ausführen kann. Die Liste ist daher sehr lang, auch wenn ich derzeit nur die Timeline, die Notifications und das Benutzerprofil einlese und darstelle.

Anyway. Nach dem Autorisieren bekomme ich von Twitter einen Token und einen Verifikation-schlüssel. Beides sind lange Zeichenketten. Den Verifikationsschlüssel muss ich nochmal gegen einen anderes Secret austauschen und dann ist der Nutzer eingeloggt. Die Details kann man bei Twitter selber nachlesen. Wichtig ist mir klarzustellen, dass ich keine Passwörter zusehen bekomme.

Diese Token speichere ich in einer PHP $_SESSION Variablen ab. Diese Variablen sind nur für eine gewisse Zeit gültig. Jeder Benutzer von Teletwitter bekommt im Hintergrund eine eigene Session ID, der diese Variablen zugeordnet sind. Wer mehr über Sessions erfahren will, kann das hier nachlesen. Diese Token werden zur Identifikation bei Twitter benutzt. Ich schicke also eine Anfrage hin und übergebe dabei die Tokens um den Benutzer, für den ich die Anfrage stelle, zu identifizieren. Twitter schickt mir darauf hin eine Antwort. Bei Teletwitter auf Seite 300 schicke ich z.B. die Anfrage “get(“statuses/home_timeline”, [“count” => 200, “exclude_replies” => true])” um 200 Tweets aus der Hometimeline des Benutzers zu bekommen. Twitter antwortet daraufhin mit diesen Tweets, die ich auch in einer Session-Variablen abspeichere. die ersten 5 davon zeige ich auf Seite 300 an. Wenn man auf Seite 301 geht, kommen die nächsten 5, ohne dass ich eine neue Anfrage an Twitter stelle. Das geht so weiter bis Seite 340. Was auf Seite 341 passiert, weiß ich tatsächlich gerade nicht. Muss ich mal ausprobieren. Kommt bestimmt ne Fehlermeldung. Egal. Geht man auf die Seiten 700 bis 799 werden einzelne Tweets aus der selben Variablen angezeigt (ich überlege dies auf Seite 600 bis 799 zu ändern, aber zum Zeitpunkt wo ich das hier schreibe sind es die Seiten 700 bis 799). Seite 400 läd, ähnlich wie Seite 300 neue Tweets in die selbe Variable, hier sind es die Notifications / replys. Diese werden danach über die selben Seiten 700 bis 799 anzeigbar. Und ja, ich weiß, dass das nicht wie bei Videotext ist, wo jede Seite immer den selben Inhalt hatte. Aber Videotext hat auch nicht jedem Benutzer anderen Inhalt gezeigt.

Abschließend gibt’s noch die Seiten 800 und 810, die statische Inhalte, einmal Informationen zu Teletwitter und einmal Kontaktinformationen darstellen.

Für Videotext gab es zusätzlich noch vier farbige Knöpfe auf der TV-Fernbedienung. Mit diesen konnten spezielle Funktionen aufgerufen werden. Diese sind (Stand heute) in Teletwitter noch nicht integriert, vor allem weil Computertastaturen diese farbigen Knöpfe nicht haben. Ich überlege noch wie ich das löse (ggf. mit Mausklicks).

Anyway. Wer das ganze selber installieren oder sich den (vermutlich schrecklichen) Code angucken will, kann das bei GitHub machen.

One Reply to “Teletwitter”

  1. […] launched a new (German) podcast about app development. Built a stupid Twitter web client. Invested some time to fix some of my iPhone Apps and launched a new one, made a YouTube video […]

Leave a Reply