Twitter‘n mit Python

3,893 views

Published on

Python User Group Köln (08.04.2009)

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,893
On SlideShare
0
From Embeds
0
Number of Embeds
73
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Twitter‘n mit Python

    1. 1. Twitter‘n mit Python Andreas Schreiber < [email_address] > PyCologne – Python User Group Köln, 08.04.2009
    2. 2. Was ist Twitter? <ul><li>Mikro-Blogging-Dienst </li></ul><ul><li>Benutzer können Textnachrichten senden </li></ul><ul><li>Benutzer können Textnachrichten anderer Benutzer empfangen </li></ul><ul><li>Textnachrichten bestehen aus maximal 140 Zeichen </li></ul><ul><li>Die Nachrichten werden „Updates“ oder „Tweets“ genannt </li></ul><ul><li>Soziales Netzwerk </li></ul><ul><li>Man folgt anderen Benutzern („Following“) </li></ul><ul><li>Benutzer, die den eigenen Updates folgen, nennt man „Follower“ </li></ul><ul><li>Auf der Twitter-Startseite kann man Updates eingeben und … </li></ul><ul><li>die Updates der Personen, denen man folgt, nach der Zeit sortiert sehen </li></ul><ul><li>Benutzer können Sichtbarkeit der Nachrichten festlegen </li></ul>http://de.wikipedia.org/wiki/Twitter
    3. 3. Was ist Twitter? Twitter ist… <ul><li>Definitionen in <140 Zeichen aus der XING-Gruppe „I love Twitter!“ </li></ul><ul><li>moderner Kulturexpressionismus im Drang der digitalen Selbstinszenierung. </li></ul><ul><li>ein Nährboden für Themen-Emergenz </li></ul><ul><li>Wissensvernetzung, Horizonterweiterung und Disziplin! </li></ul><ul><li>die Möglichkeit auf unkonventionelle Art und Weise in Kontakt mit fremdem Personen zu gelangen. </li></ul><ul><li>ein Zwitter - zwischen Blog und Instant Messaging. </li></ul><ul><li>die SMS an die Welt </li></ul><ul><li>das virtuelle Kaffee - alles was wichtig ist, bei einem Plausch zwischendurch </li></ul><ul><li>DIE neue Methode der schnellen Kommunikation und &quot;stay-in-touch-Möglichkeit&quot; </li></ul>https://www.xing.com/net/twitter/
    4. 4. Historie <ul><li>Begründer </li></ul><ul><li>Jack Dorsey, Biz Stone und Evan Williams </li></ul><ul><li>März 2006 </li></ul><ul><li>Beginn als F&E-Projekt der Firma Odeo </li></ul><ul><li>Interne Nutzung der Odeo-Mitarbeiter </li></ul><ul><li>April 2007 </li></ul><ul><li>Ausgründung von Twitter als eigenständige Firma </li></ul><ul><li>User-Zahlen von twitter.com </li></ul><ul><li>Starker Anstieg im letzten Jahr </li></ul><ul><li>Keine genauen Zahlen veröffentlicht </li></ul>
    5. 6. Wer twittert? <ul><li>Personen (Privatpersonen, „Promis“, Politiker, …) </li></ul><ul><li>Guido van Rossum, Ian Foster, Rainer Calmund, Herrmann Otto Solms </li></ul><ul><li>Forschungseinrichtungen & Universitäten </li></ul><ul><li>DLR, ESA, NASA, Fraunhofer, DHBW Mannheim, FH Köln, Cardiff Uni. </li></ul><ul><li>Firmen (Verlage, IT-Firmen, Dienstleister, …) </li></ul><ul><li>O‘Reilly, Heise, Sun Microsystems, Google, XING, Starbucks, Bahn </li></ul><ul><li>Software-Projekte & -Produkte </li></ul><ul><li>Digsby, Dropbox, Plone, Jython, SharePoint, SlideShare, Camtasia </li></ul><ul><li>Medien (Zeitungen, TV-Sender, TV-Sendungen, …) </li></ul><ul><li>Bild, Welt, Focus, ZEIT, BBC, CNN, Pro7, TV Total </li></ul><ul><li>Konferenzen & Organisationen </li></ul><ul><li>EuroPython, PyCon, Supercomputing, EclipseCon, Greenpeace </li></ul>
    6. 8. Guido van Rossum
    7. 9. DLR_de
    8. 10. O‘Reilly
    9. 11. Plone
    10. 12. Focus Online
    11. 13. EuroPython
    12. 14. Web-Seiten und Technologie <ul><li>http://twitter.com </li></ul><ul><li>Web-Anwendung entwickelt mit Ruby on Rails </li></ul><ul><li>Message Queue Server Kestrel (fka. Starling) entwickelt in Scala </li></ul><ul><ul><li>Verfügbar unter Apache 2.0 Lizenz </li></ul></ul><ul><ul><li>http://github.com/robey/kestrel/tree/master </li></ul></ul><ul><li>http://search.twitter.com </li></ul><ul><li>Suche stammt von der Firma Summize </li></ul><ul><li>Echtzeit-Suche über den Twitter-XMPP-Stream </li></ul><ul><li>Abfragen über Atom und JSON: http://search.twitter.com/search.atom?q=<query> http://search.twitter.com/search.json?q=<query> </li></ul>
    13. 15. Twitter API
    14. 16. Twitter API <ul><li>REST-basiertes API </li></ul><ul><li>HTTP-Requests </li></ul><ul><li>Datenformate: XML, JSON, RSS, Atom </li></ul><ul><li>Authentifizierung über OAuth (beta) oder HTTP Basic Authentication </li></ul><ul><li>Error-Meldungen im jeweiligen Ausgabeformat, z.B. XML: </li></ul><ul><li>Limitierung: Max. 100 Requests in 60 Minuten pro Client </li></ul><ul><ul><li>Basis: IP (unauthorized) bzw. User ID (authorized) </li></ul></ul><ul><li>Dokumentation: http://apiwiki.twitter.com </li></ul><?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>
    15. 17. Bibliotheken <ul><li>Liste der Libraries: http://apiwiki.twitter.com/Libraries </li></ul><ul><li>ActionScript / Flash </li></ul><ul><li>C++ </li></ul><ul><li>C#/.NET </li></ul><ul><li>Java </li></ul><ul><li>Objective-C/Cocoa </li></ul><ul><li>Perl </li></ul><ul><li>PHP </li></ul><ul><li>PL/SQL </li></ul><ul><li>Python </li></ul><ul><li>Ruby </li></ul><ul><li>Scala </li></ul>
    16. 18. Twitter Libraries in Python <ul><li>Python Libraries </li></ul><ul><li>python-twitter by DeWitt Clinton. This library provides a pure Python interface for the Twitter API. </li></ul><ul><li>python-twyt by Andrew Price. BSD licensed Twitter API interface library and command line client. </li></ul><ul><li>twitty-twister by Dustin Sallings. A Twisted interface to Twitter. </li></ul><ul><li>Python Twitter Tools (PPT) by Mike Verdone a Twitter API, command-line tool, and IRC bot </li></ul>
    17. 19. python-twitter Pure Python Interface for the Twitter API <ul><li>Projektinformationen </li></ul><ul><li>Projektseite: http://code.google.com/p/python-twitter/ </li></ul><ul><li>Autor: DeWitt Clinton (Google; http://unto.net) </li></ul><ul><li>Apache License 2.0 </li></ul><ul><li>Funktionsumfang </li></ul><ul><li>Status-Methoden </li></ul><ul><li>User-Methoden </li></ul><ul><li>Direct-Message-Methoden </li></ul>
    18. 20. Beispiel Abfrage der Nachrichten eines Nutzers <ul><li>[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'] </li></ul>import twitter api = twitter.Api() statuses = api.GetUserTimeline( 'DLR_de' ) print [s.text for s in statuses[:5]]
    19. 21. Beispiel Veröffentlichen einer Nachricht import twitter api = twitter.Api(username= 'python_demo' , password= '***' ) api.PostUpdate( 'Moin!' )
    20. 22. 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;}
    21. 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)
    22. 24. Demo Twitter-Benachrichtigungen aus MoinMoin <ul><li>Twitter-Handler für das MoinMoin Event System </li></ul>python-twitter
    23. 25. Fragen?

    ×