Net::Twitter von Chris Thompson bietet eine einfache Schnittstelle zum Mikro-Blogging-Dienst Twitter.
In diesem Beitrag wird kurz aufgezeigt, wie Status Updates, Anzeige der Tweets eines Feeds und eine einfache Schlagwortsuche mit Net::Twitter funktionieren.
Beispiel: Status update
#!/usr/local/bin/perl use strict; use warnings; use Net::Twitter; use Dumpvalue; my $username = 'test'; my $password = 'secret'; my $twit = Net::Twitter->new( username => $username, password => $password, ) or die $!; # Pruefen, ob Login klappt $twit->verify_credentials() or die $twit->get_error(); # Status aktualisieren # Wenn der Text laenger als 140 Zeichen ist, # wird ohne Fehlermeldung abgeschnitten my $tweet = $twit->update( "Net::Twitter Test!" ) or die $twit->get_error(); # ID fuer Tweet ausgeben print "Tweet-ID: ", $tweet->{id} , "\n"; # Alle Werte der Datenstruktur $tweet ausgeben my $dumper = new Dumpvalue;; $dumper->dumpValue(\\$tweet); # Logout $twit->end_session();
Beispiel: Tweets von anderen Usern anzeigen
In diesem Beispiel werden die aktuellen Tweets des Twitterfeed von PerlNews ausgegeben.
#!/usr/local/bin/perl use strict; use warnings; use Net::Twitter; my $username = 'test'; my $password = 'secret'; my $twit = Net::Twitter->new( username=> $username, password=> $password, ) or die $!; # Pruefen, ob Login klappt $twit->verify_credentials() or die $twit->get_error(); # Tweets von perlfeed holen my $results = $twit->user_timeline( { id => 'perlfeed', } ) or die $twit->get_error(); foreach my $result ( reverse @$results ) { print $result->{text}, "\n"; print $result->{created_at}, "\n"; } $twit->end_session();
Das Programm erzeugt folgende Ausgabe:
[The Perl Foundation] Neuer Grant Manager (http://tinyurl.com/a39kz4) Sun Dec 28 09:27:02 +0000 2008 [Lesestoff] Perl-Review 5.1 erschienen (http://tinyurl.com/a42vyx) Fri Jan 02 07:32:31 +0000 2009 [The Perl Foundation] Updates zu laufenden Grants (http://tinyurl.com/8j5ums) Fri Jan 02 16:28:40 +0000 2009 [Allgemeines] iCalender für-Veranstaltungen (http://tinyurl.com/6wsu79) Fri Jan 02 18:09:01 +0000 2009 [Allgemeines] Ajax PPI Tester (http://tinyurl.com/8y2arx) Sun Jan 04 13:35:42 +0000 2009 [Veranstaltungen] Anmeldephase für 11. Deutschen Perl-Workshop beginnt (http://tinyurl.com/7oowxp) Tue Jan 06 07:42:56 +0000 2009 [The Perl Foundation] Grant Proposals erwünscht (http://tinyurl.com/7csa8f) Wed Jan 07 21:56:43 +0000 2009 [Projekte] Foswiki 1.0 erschienen (http://tinyurl.com/85avl5 Sat Jan 10 14:26:27 +0000 2009 [Lesestoff] Interessanter Heise-Artikel über "Gesundheitszustand von Perl" (http://tinyurl.com/8a4w6c Mon Jan 12 17:03:28 +0000 2009 [Veranstaltungen] Nordic Perl-Workshop 2009: Verlängerter "Call for Papers" (http://tinyurl.com/9bjnph Tue Jan 13 07:16:43 +0000 2009 [The Perl Foundation] Perl 6 Microgrants: Buch in Wikibooks (http://tinyurl.com/8srbvv Tue Jan 13 16:12:36 +0000 2009 [Kurse] Training: Test-Automatisierung mit Perl (http://tinyurl.com/76563d Wed Jan 14 07:23:40 +0000 2009 [Projekte] Interview mit den Entwicklern von mod_perlite (http://tinyurl.com/7px3mf Fri Jan 16 10:09:58 +0000 2009 [The Perl Foundation] Updates zu laufenden Grants (16.01.2009) (http://tinyurl.com/7jtv6c Fri Jan 16 21:40:54 +0000 2009
Beispiel: Nach Schlagworten suchen
In diesem Beispiel wird nach dem Schlagwort "perl" gesucht:
#!/usr/local/bin/perl use strict; use warnings; use Net::Twitter; my $username = 'test'; my $password = 'secret'; my $twit = Net::Twitter->new( username => $username, password => $password, ) or die $!; my $result = $twit->search('perl'); foreach my $tweet ( @{ $result->{results} } ) { my $speaker = $tweet->{from_user}; my $text = $tweet->{text}; my $time = $tweet->{created_at}; print "$speaker at $time: $text\n"; } $twit->end_session();
Das Programm erzeugt folgende Ausgabe:
nothingmuch at Mon, 19 Jan 2009 20:25:23 +0000: @greenrd oh, where... sorry. http://iinteractive.com/ but it's a pretty meaningless website. we mostly do oss perl
breyten at Mon, 19 Jan 2009 20:18:43 +0000: @remco72 wij hadden tot vorige week op werk een systeem draaien wat op zijn hoogtepunt zo'n 480 entries had :-) (bijna allemaal perl tro ...
JacoKoster at Mon, 19 Jan 2009 20:15:00 +0000: @remco72 Hoeveel perl scriptjes heb je nou in je cron zitten? ;)
florajl at Mon, 19 Jan 2009 20:13:40 +0000: ThinkGeek in Fairfax is hiring a Senior Perl Programmer, if anyone is interested. http://www.thinkgeek.com/jobs/#sp
joshbydefault at Mon, 19 Jan 2009 20:02:02 +0000: note: if you want to fake a hard drive failure on a mac just symlink all the kernel extensions to perl and reboot. bonus: epic kernel panic
nothingmuch at Mon, 19 Jan 2009 20:00:10 +0000: @greenrd lots of lightweight threads interactively aggregating data to be processed by a perl frontend
dailyperlonlinr at Mon, 19 Jan 2009 19:45:05 +0000: -- select field1, count(*) from csvfile group by field1 $ perl -F, -lane '$h{$F[0]}++; END{ print "$_ $h{$_}" for sort keys %h}' file.csv
merlyn at Mon, 19 Jan 2009 19:40:49 +0000: @kepford Only relatively cool. :) I follow everyone who mentions FLOSS Weekly or my name or Learning/Intermediate Perl
thebarkingdog at Mon, 19 Jan 2009 19:36:02 +0000: Hey, there's a Perl Net::Twitter module: http://is.gd/gtQr the barking dog is playing s/^blah$/foo/gi
Twirrim at Mon, 19 Jan 2009 19:30:10 +0000: Monday=wash day. 1st load on the go whilst a perl & mysql script does some more netflix data mining. SELECT DISTINCT(custid) from movies.
andreaszecher at Mon, 19 Jan 2009 19:19:40 +0000: @thomas_prommer Try TextMate together with the Perl bundle - http://macromates.com/
hoberion at Mon, 19 Jan 2009 19:13:18 +0000: I hate perl cpan with a passion
freetrek at Mon, 19 Jan 2009 19:13:09 +0000: perl? ruby? python?... i'm lost...
JustinKohnen at Mon, 19 Jan 2009 19:02:26 +0000: Mmmm... strawberry perl.... sounds delicious
PerlHowto at Mon, 19 Jan 2009 19:01:49 +0000: Video: Perl Myths - Feb 2008. http://tinyurl.com/9vxbto
Siehe auch
- Net::Twitter - Perl interface to twitter.com
- Twitterfeed von Net::Twitter
- Wikipedia: Twitter
- Twitterfeed von PerlNews
- Twitterfeed von PerlBuzz
- Twitterfeed von Perl-Howto.de
- Twitterfeed von Perl Best Practices
- CPAN Reviews: Reviewing CPAN modules 140 chars at a time
- Twitterfeed Perl::Critic
- Twitterfeed: Täglich einen neuen One-Liner

Jetzt kommentieren