Dienstag, 22. September 2009

Google Docs, Twitter-Profile auslesen und ein Google Maps-Mashup

Mit der Hilfe von Google Docs möchte ich kurz erläutern, wie man die öffentlichen Twitter-Profildaten auslesen kann.

Im Twitter-Profil werden folgende Informationen angeboten:

  1. Anzahl der Followers (Twitter-Nutzern folgen mir)
  2. Anzahl der Friends/Following (diesen folge ich, vergleichbar mit RSS-Feed Abonnenten)
  3. Anzahl der abgesetzen Tweets (Nachrichten)
  4. Standort des Twitter-User (sofern im Profil hinterlegt)
  5. Gespeicherte Favoriten (Tweets)
  6. Erstellungszeitraum des Twitter-Accounts
  7. Letzter Tweet

Es gibt noch einige andere Informationen die man aus der XML-Datei auslesen kann, beschränke mich aber auf die oben genannten Daten.

Die Twitter-Profil-Daten kann man sich unter: http://twitter.com/users/show/Dein-Profilname.xml anschauen.

Google-Docs-Twitter-Profile-XML

Nun zum auslesen der XML-Datei mit Google Text und Tabellen, die Tabelle sieht so aus:

Google-Docs-Twitter-Profile

Das Beispiel erfolgt nur am ersten Datensatz, die Formel brauchen nur in die anderen Zeilen hinein kopiert werden (Anpassung des Parameter "& $A2"- Twittername - nicht vergessen).

In der Spalte A2 gebe ich den Twitter-Namen ein.

In Spalte B2 wird die Abfrage für Anzahl der Followers kopiert:

=ImportXML("http://twitter.com/users/show/" & $A2 & ".xml";"//followers_count")

In Spalte C2 wird die Abfrage für Anzahl der Friends kopiert:

=ImportXML("http://twitter.com/users/show/" & $A2 & ".xml";"//friends_count")

In Spalte D2 erstelle ich mir eine Ratio/ Verhältniszahl (Followers/Friend). Da recht viel in Twitter mit der Anzahl der Friends geschummelt und gespammt wird, ist das nur ein simpler Verhältnis-Faktor für den ersten Eindruck ;-).

=iferror(B2/C2;0)

In Spalte E2 gebe ich einen Hinweistext zur Ratio aus, die Verhältniszahl und den Text kann man ja anpassen :

=if(D2 < 0,51;"Schlecht. Spammer?";"in Ordnung")

In F2 wird die Gesamtanzahl der Tweets ausgelesen:

=ImportXML("http://twitter.com/users/show/" & $A2 & ".xml";"//statuses_count")

In Spalte G2 werden die gespeicherten Tweet-Favoriten ausgelesen:

=ImportXML("http://twitter.com/users/show/" & $A2 & ".xml";"//favourites_count")

In Spalte H2 liest man das Erstellungsdatum des Twitter-Accounts aus:

=ImportXML("http://twitter.com/users/show/" & $A2 & ".xml";"//user/created_at")

In Spalte I2 wird der Standort ausgelesen, sofern der Nutzer diesen eingeben hat, ggf. erfolgt ein Texthinweis:

=iferror(importxml("http://twitter.com/users/show/" & $A2 & ".xml";"//location"); "Keine Standortangabe gefunden") & ""

In Spalte J2 wird der letzte abgeschickte Tweet (Status) ausgelesen:

=ImportXML("http://twitter.com/users/show/" & $A2 & ".xml";"//status/text")

Leider können in einer Google Docs Tabelle nur maximal 50 Aufrufe mittels der Import-Funktion ausgeführt werden. Für mehr Accountabfragen müsste man sich also mehrere Spreadsheets anlegen und in einer Master-Tabelle die Informationen abfragen /zusammenfassen.

Als kleines Bonbon habe ich ein Mini-Mashup mit dem Google Maps Gadget erstellt.

Dazu habe ich zuerst noch drei weitere Spalten angelegt.

Google-Docs-Twitter-Profile3-Maps2

In Spalte K2 lese ich die aktuelle Temperatur zum Twitter-Standort mit Hilfe der Google Weather-API aus:

=Iferror(ImportXML("http://www.google.de/ig/api?weather="&SUBSTITUTE( TRIM(L2) ; " ";"+");"//xml_api_reply/weather/current_conditions/temp_c/@data");" Keine Wetterdaten vorhanden")

In Spalte L2 kopiere ich den Standort aus Spalte I2:

=I2

In Spalte M2 füge ich nun die diversen Informationen zusammen:

=CONCATENATE(A2;" Follwers: " &B2;" |Friends: " &C2;" |Ratio: " &round(D2;2);" |Ratio: " &E2; " |Tweets: " &F2;" |letzter Tweet: " &J2;" |aktuelle Temperatur: "& K2;"°C")

Der Hintergrund ist der, dass das Maps-Gadget zwei Spalten braucht die:

  1. Nebeneinander liegen müssen und
  2. als ToolTip (Informationsanzeige mit dem Mauszeiger in der Map) müssen die Daten als Text vorliegen und im Gadget muss man den Tooltip als letzte Spalte definieren


Google-Docs-Twitter-Profile-Maps
Zum einbinden in mein Blog nutze ich das Freigeben des Spreadsheets als Website und veröffentliche das Google Maps Gadget (es gibt im Code einen Refresh-Intervall ggf. auf 60= 1 Minute ändern, Standard= 300 Sekunden) und füge den angebotenen Code ins Blog-Post ein.

Hinweis: Das Maps-Gadget wird jedoch in Blogger nicht im Editor (Tab: Verfassen) bzw. im Vorschau-Modus angezeigt!



Noch mal als Screenshot:

Google-Docs-Twitter-Profile3-Maps4
Leider haben nicht alle Twitter-Nutzer in ihrem Profil einen Standort (Stadt/Land) eingeben und werden im Gadget nicht angezeigt. Vielleicht holen sie es ja nach ;-).
Ich denke das z.B. "Cobrox" nicht tatsächlich da wohnt, wo er im Gadget angezeigt wird *grins*. Die nächst größere Stadt in der Nähe tut es ja auch...

Viel Spaß beim ausprobieren.

NoodleGei.blogspot.com

Ähnliche Beiträge zum Thema/Kategorie:



2 Kommentar(e) zum Beitrag:

Geist und Gegenwart hat gesagt…

Wieder mal super interessanter post! Hab übrigens meinen Standort eingetragen... G

NoodleGei hat gesagt…

Danke für deinen Location-Eintrag.
Jetzt fehlt noch einer, der seine Stadt eintragen muss ;-). Nur das Land ist zu wenig.

Dauert immer eine kleine Zeit bis das die Wetterinformation im Maps-Gadget angezeigt wird.
In der dahinterliegenden Tabelle wird die aktuelle Temperatur sofort angezeigt.

Von Google Docs krieg ich nicht genug ;-).
Mann, wird das ein Tool, wenn Google Javascript auch für Google Docs (Stand-alone Edition) freigeben würde!

Eine Erhöhung der Aufruf-Limits würde mir aber im Moment auch schon genügen.

Ciao.

Kommentar veröffentlichen

Kommentare bitte fair und im rechtlich erlaubten Rahmen verfassen!
Die Kommentare und ggf. hinterlassene URLs werden von mir überprüft. Kommentare die für blaue Pillchen, Glücksspiele, bestimmte Bilder/Videos, Abzocker-Dienste usw. werben, werden gelöscht.

Kommentare von SEO-Link-Builder sind ebenso unerwünscht!

In den Kommentare können die HTML-Tags für:
kursiv = <i>Testwort</i>
fett = <b>Testwort</b>
Links = <a href="http://www.deineURL.de/">Link Text</a>
genutzt werden. Einfach die o.g. Beispiele kopieren und mit den eigenen Werten ersetzen.

  © Blogger template Columnus by Ourblogtemplates.com 2008

Back to TOP