Twitter‘n mit Python Andreas Schreiber < [email_address] > PyCologne – Python User Group Köln, 08.04.2009
Was ist Twitter? Mikro-Blogging-Dienst Benutzer können Textnachrichten senden Benutzer können Textnachrichten anderer Benutzer empfangen Textnachrichten bestehen aus maximal 140 Zeichen Die Nachrichten werden „Updates“ oder „Tweets“ genannt Soziales Netzwerk Man folgt anderen Benutzern („Following“) Benutzer, die den eigenen Updates folgen, nennt man „Follower“  Auf der Twitter-Startseite kann man Updates eingeben und … die Updates der Personen, denen man folgt, nach der Zeit sortiert sehen Benutzer können Sichtbarkeit der Nachrichten festlegen  http://de.wikipedia.org/wiki/Twitter
Was ist Twitter? Twitter ist… Definitionen in <140 Zeichen aus der XING-Gruppe „I love Twitter!“ moderner Kulturexpressionismus im Drang der digitalen Selbstinszenierung. ein Nährboden für Themen-Emergenz  Wissensvernetzung, Horizonterweiterung und Disziplin!  die Möglichkeit auf unkonventionelle Art und Weise in Kontakt mit fremdem Personen zu gelangen.  ein Zwitter - zwischen Blog und Instant Messaging.  die SMS an die Welt  das virtuelle Kaffee - alles was wichtig ist, bei einem Plausch zwischendurch  DIE neue Methode der schnellen Kommunikation und &quot;stay-in-touch-Möglichkeit&quot;  https://www.xing.com/net/twitter/
Historie Begründer   Jack Dorsey, Biz Stone und Evan Williams März 2006 Beginn als F&E-Projekt der Firma Odeo Interne Nutzung der Odeo-Mitarbeiter April 2007 Ausgründung von Twitter als eigenständige Firma User-Zahlen von twitter.com Starker Anstieg im letzten Jahr Keine genauen Zahlen  veröffentlicht
 
Wer twittert? Personen (Privatpersonen, „Promis“, Politiker, …) Guido van Rossum, Ian Foster, Rainer Calmund, Herrmann Otto Solms Forschungseinrichtungen & Universitäten DLR, ESA, NASA, Fraunhofer, DHBW Mannheim, FH Köln, Cardiff Uni. Firmen (Verlage, IT-Firmen, Dienstleister, …) O‘Reilly, Heise, Sun Microsystems, Google, XING, Starbucks, Bahn Software-Projekte & -Produkte Digsby, Dropbox, Plone, Jython, SharePoint, SlideShare, Camtasia Medien (Zeitungen, TV-Sender, TV-Sendungen, …) Bild, Welt, Focus, ZEIT, BBC, CNN, Pro7, TV Total  Konferenzen & Organisationen EuroPython, PyCon, Supercomputing, EclipseCon, Greenpeace
 
Guido van Rossum
DLR_de
O‘Reilly
Plone
Focus Online
EuroPython
Web-Seiten und Technologie http://twitter.com Web-Anwendung entwickelt mit Ruby on Rails Message Queue Server  Kestrel  (fka. Starling)  entwickelt in Scala Verfügbar unter Apache 2.0 Lizenz http://github.com/robey/kestrel/tree/master http://search.twitter.com Suche stammt von der Firma  Summize Echtzeit-Suche über den Twitter-XMPP-Stream Abfragen über Atom und JSON: http://search.twitter.com/search.atom?q=<query> http://search.twitter.com/search.json?q=<query>
Twitter API
Twitter API REST-basiertes API HTTP-Requests Datenformate: XML, JSON, RSS, Atom Authentifizierung über OAuth (beta) oder HTTP Basic Authentication Error-Meldungen im jeweiligen Ausgabeformat, z.B. XML: Limitierung: Max. 100 Requests in 60 Minuten pro Client Basis: IP (unauthorized) bzw. User ID (authorized) Dokumentation:  http://apiwiki.twitter.com <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <hash> <request>/direct_messages/destroy/456.xml</request> <error>No direct message with that ID found.</error> </hash>
Bibliotheken Liste der Libraries:  http://apiwiki.twitter.com/Libraries ActionScript / Flash C++ C#/.NET Java Objective-C/Cocoa Perl PHP PL/SQL Python Ruby Scala
Twitter Libraries in Python Python Libraries python-twitter  by DeWitt Clinton.  This library provides a pure Python interface for the Twitter API. python-twyt  by Andrew Price.  BSD licensed Twitter API interface library and command line client. twitty-twister  by Dustin Sallings.  A Twisted interface to Twitter. Python Twitter Tools (PPT)  by Mike Verdone a Twitter API, command-line tool, and IRC bot
python-twitter Pure Python Interface for the Twitter API Projektinformationen Projektseite:  http://code.google.com/p/python-twitter/ Autor: DeWitt Clinton (Google; http://unto.net) Apache License 2.0 Funktionsumfang Status-Methoden User-Methoden Direct-Message-Methoden
Beispiel Abfrage der Nachrichten eines Nutzers [u&quot;Video: @NASA's SOFIA mission update http://tinyurl.com/cmmna3 #SOFIA (Stratospheric Observatory For Infrared Astronomy)&quot;, u'Video zur GOCE-Mission (Messung der Schwerkraft) http://tinyurl.com/c5zhdb #euronews', u'(EN) Now following @ESAGermany and @ESAGOCE', u'@AndreasSchepers Gute Frage. Immerhin hat die NASA-Mission keinen Vornamen. #Johannes #ATV #NASA', u'RT @AndreasSchepers Thomas Reiter: Wir wissen mehr \xfcber den Mars als den Mond. http://is.gd/k7qZ #Mp3 #DeutschlandRadioKultur #DLR-Vorstand'] import  twitter api = twitter.Api() statuses = api.GetUserTimeline( 'DLR_de' ) print [s.text  for  s  in  statuses[:5]]
Beispiel Veröffentlichen einer Nachricht import  twitter api = twitter.Api(username= 'python_demo' ,    password= '***' ) api.PostUpdate( 'Moin!' )
Beispiel Hinzufügen eines Freundes („Follow“) import  twitter api = twitter.Api(username= 'python_demo' , password= '***' ) user = api.CreateFriendship( 'pycologne' ) print user {&quot;description&quot;: &quot;Python User Group Cologne&quot;, &quot;id&quot;: 23515458, &quot;location&quot;: &quot;Cologne, Germany&quot;, &quot;name&quot;: &quot;PyCologne&quot;, &quot;profile_image_url&quot;: &quot;http://s3.amazonaws.com/twitter_production/profile_images/91413444/pycologne_logo_small_quadratisch_normal.jpg&quot;, &quot;screen_name&quot;: &quot;pycologne&quot;, &quot;url&quot;: &quot;http://www.pycologne.de&quot;}
Beispiel „tail –f“ nach Twitter # based on http://code.activestate.com/recipes/157035/ import  time, os import  twitter api = twitter.Api(username= 'python_demo' , password= '***' ) file = open( 'test.log' , 'r' ) # ... <Find the size of the file and move to the end> while  1: where = file.tell() line = file.readline() if   not  line: time.sleep(1) file.seek(where) else : api.PostUpdate(line)
Demo Twitter-Benachrichtigungen aus MoinMoin Twitter-Handler für das MoinMoin Event System python-twitter
Fragen?

Twitter‘n mit Python

  • 1.
    Twitter‘n mit PythonAndreas Schreiber < [email_address] > PyCologne – Python User Group Köln, 08.04.2009
  • 2.
    Was ist Twitter?Mikro-Blogging-Dienst Benutzer können Textnachrichten senden Benutzer können Textnachrichten anderer Benutzer empfangen Textnachrichten bestehen aus maximal 140 Zeichen Die Nachrichten werden „Updates“ oder „Tweets“ genannt Soziales Netzwerk Man folgt anderen Benutzern („Following“) Benutzer, die den eigenen Updates folgen, nennt man „Follower“ Auf der Twitter-Startseite kann man Updates eingeben und … die Updates der Personen, denen man folgt, nach der Zeit sortiert sehen Benutzer können Sichtbarkeit der Nachrichten festlegen http://de.wikipedia.org/wiki/Twitter
  • 3.
    Was ist Twitter?Twitter ist… Definitionen in <140 Zeichen aus der XING-Gruppe „I love Twitter!“ moderner Kulturexpressionismus im Drang der digitalen Selbstinszenierung. ein Nährboden für Themen-Emergenz Wissensvernetzung, Horizonterweiterung und Disziplin! die Möglichkeit auf unkonventionelle Art und Weise in Kontakt mit fremdem Personen zu gelangen. ein Zwitter - zwischen Blog und Instant Messaging. die SMS an die Welt das virtuelle Kaffee - alles was wichtig ist, bei einem Plausch zwischendurch DIE neue Methode der schnellen Kommunikation und &quot;stay-in-touch-Möglichkeit&quot; https://www.xing.com/net/twitter/
  • 4.
    Historie Begründer Jack Dorsey, Biz Stone und Evan Williams März 2006 Beginn als F&E-Projekt der Firma Odeo Interne Nutzung der Odeo-Mitarbeiter April 2007 Ausgründung von Twitter als eigenständige Firma User-Zahlen von twitter.com Starker Anstieg im letzten Jahr Keine genauen Zahlen veröffentlicht
  • 5.
  • 6.
    Wer twittert? Personen(Privatpersonen, „Promis“, Politiker, …) Guido van Rossum, Ian Foster, Rainer Calmund, Herrmann Otto Solms Forschungseinrichtungen & Universitäten DLR, ESA, NASA, Fraunhofer, DHBW Mannheim, FH Köln, Cardiff Uni. Firmen (Verlage, IT-Firmen, Dienstleister, …) O‘Reilly, Heise, Sun Microsystems, Google, XING, Starbucks, Bahn Software-Projekte & -Produkte Digsby, Dropbox, Plone, Jython, SharePoint, SlideShare, Camtasia Medien (Zeitungen, TV-Sender, TV-Sendungen, …) Bild, Welt, Focus, ZEIT, BBC, CNN, Pro7, TV Total Konferenzen & Organisationen EuroPython, PyCon, Supercomputing, EclipseCon, Greenpeace
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
    Web-Seiten und Technologiehttp://twitter.com Web-Anwendung entwickelt mit Ruby on Rails Message Queue Server Kestrel (fka. Starling) entwickelt in Scala Verfügbar unter Apache 2.0 Lizenz http://github.com/robey/kestrel/tree/master http://search.twitter.com Suche stammt von der Firma Summize Echtzeit-Suche über den Twitter-XMPP-Stream Abfragen über Atom und JSON: http://search.twitter.com/search.atom?q=<query> http://search.twitter.com/search.json?q=<query>
  • 15.
  • 16.
    Twitter API REST-basiertesAPI HTTP-Requests Datenformate: XML, JSON, RSS, Atom Authentifizierung über OAuth (beta) oder HTTP Basic Authentication Error-Meldungen im jeweiligen Ausgabeformat, z.B. XML: Limitierung: Max. 100 Requests in 60 Minuten pro Client Basis: IP (unauthorized) bzw. User ID (authorized) Dokumentation: http://apiwiki.twitter.com <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <hash> <request>/direct_messages/destroy/456.xml</request> <error>No direct message with that ID found.</error> </hash>
  • 17.
    Bibliotheken Liste derLibraries: http://apiwiki.twitter.com/Libraries ActionScript / Flash C++ C#/.NET Java Objective-C/Cocoa Perl PHP PL/SQL Python Ruby Scala
  • 18.
    Twitter Libraries inPython Python Libraries python-twitter by DeWitt Clinton. This library provides a pure Python interface for the Twitter API. python-twyt by Andrew Price. BSD licensed Twitter API interface library and command line client. twitty-twister by Dustin Sallings. A Twisted interface to Twitter. Python Twitter Tools (PPT) by Mike Verdone a Twitter API, command-line tool, and IRC bot
  • 19.
    python-twitter Pure PythonInterface for the Twitter API Projektinformationen Projektseite: http://code.google.com/p/python-twitter/ Autor: DeWitt Clinton (Google; http://unto.net) Apache License 2.0 Funktionsumfang Status-Methoden User-Methoden Direct-Message-Methoden
  • 20.
    Beispiel Abfrage derNachrichten eines Nutzers [u&quot;Video: @NASA's SOFIA mission update http://tinyurl.com/cmmna3 #SOFIA (Stratospheric Observatory For Infrared Astronomy)&quot;, u'Video zur GOCE-Mission (Messung der Schwerkraft) http://tinyurl.com/c5zhdb #euronews', u'(EN) Now following @ESAGermany and @ESAGOCE', u'@AndreasSchepers Gute Frage. Immerhin hat die NASA-Mission keinen Vornamen. #Johannes #ATV #NASA', u'RT @AndreasSchepers Thomas Reiter: Wir wissen mehr \xfcber den Mars als den Mond. http://is.gd/k7qZ #Mp3 #DeutschlandRadioKultur #DLR-Vorstand'] import twitter api = twitter.Api() statuses = api.GetUserTimeline( 'DLR_de' ) print [s.text for s in statuses[:5]]
  • 21.
    Beispiel Veröffentlichen einerNachricht import twitter api = twitter.Api(username= 'python_demo' , password= '***' ) api.PostUpdate( 'Moin!' )
  • 22.
    Beispiel Hinzufügen einesFreundes („Follow“) import twitter api = twitter.Api(username= 'python_demo' , password= '***' ) user = api.CreateFriendship( 'pycologne' ) print user {&quot;description&quot;: &quot;Python User Group Cologne&quot;, &quot;id&quot;: 23515458, &quot;location&quot;: &quot;Cologne, Germany&quot;, &quot;name&quot;: &quot;PyCologne&quot;, &quot;profile_image_url&quot;: &quot;http://s3.amazonaws.com/twitter_production/profile_images/91413444/pycologne_logo_small_quadratisch_normal.jpg&quot;, &quot;screen_name&quot;: &quot;pycologne&quot;, &quot;url&quot;: &quot;http://www.pycologne.de&quot;}
  • 23.
    Beispiel „tail –f“nach Twitter # based on http://code.activestate.com/recipes/157035/ import time, os import twitter api = twitter.Api(username= 'python_demo' , password= '***' ) file = open( 'test.log' , 'r' ) # ... <Find the size of the file and move to the end> while 1: where = file.tell() line = file.readline() if not line: time.sleep(1) file.seek(where) else : api.PostUpdate(line)
  • 24.
    Demo Twitter-Benachrichtigungen ausMoinMoin Twitter-Handler für das MoinMoin Event System python-twitter
  • 25.