Twitter zwingt Drittanbieter seit ein paar Tagen ein neues Authentifizierungsverfahren, OAuth, zu verwenden. Dieses Verfahren soll den Diebstahl von Passwörtern unterbinden.
Registrierung
Drittanbieter müssen Ihre Applikation zunächst unter http://twitter.com/apps registrieren.
Autorisierung
Im nächsten Schritt muss der Anwender der Applikation den Zugriff erlauben.
Das folgende Beispiel-Skript führt die Autorisierung durch und speichert alle erforderlichen Daten in eine Konfigurationsdatei.
#!/usr/local/bin/perl use strict; use warnings; use Config::Simple; use Net::Twitter; my $config_file = 'twitter.access.ini'; my $cfg = new Config::Simple( syntax => 'ini' ) or die $!; # You can replace the consumer tokens with your own; # these tokens are for the Net::Twitter example app. #my %consumer_tokens = ( # consumer_key => 'v8t3JILkStylbgnxGLOQ', # consumer_secret => '5r31rSMc0NPtBpHcK8MvnCLg2oAyFLx5eGOMkXM', #); my %consumer_tokens = ( consumer_key => 'Get_Your_Consumer_Key_From_TwitterDotComSlashApps', consumer_secret => 'Get_Your_Consumer_Secret_From_TwitterDotComSlashApps', ); my $nt = Net::Twitter->new( traits => [qw/API::REST OAuth/], %consumer_tokens ); # Autorisierung my $auth_url = $nt->get_authorization_url; print "Diese Applikation muss autorisiert werden.\n"; print "Bitte $auth_url \n"; print "in einem Browser oeffnen und den Zugang erlauben.\n"; print "Bitte Twitter-PIN eingeben: "; my $pin = <STDIN>; # Auf Eingabe warten chomp $pin; # Autorisierung mit PIN# my ( $access_token, $access_token_secret, $user_id, $screen_name ) = $nt->request_access_token( verifier => $pin ) or die $!; # Daten in Config-Datei schreiben $cfg->param( 'access_token', $access_token ); $cfg->param( 'accesss_token_secret', $access_token_secret ); $cfg->param( 'user_id', $user_id ); $cfg->param( 'screen_name', $screen_name ); $cfg->param( 'consumer_key', $consumer_tokens{consumer_key} ); $cfg->param( 'consumer_secret', $consumer_tokens{consumer_secret} ); $cfg->write($config_file) or die $!; exit;
Tweet
Im Beispiel wird die oben erzeugte Konfigurationsdatei verwendet, ein Test-Tweet erzeugt und die letzen Tweets angezeigt.
#!/usr/local/bin/perl use strict; use warnings; use Config::Simple; use Net::Twitter; my $config_file = 'twitter.access.ini'; my $cfg = new Config::Simple() or die $!; $cfg->read($config_file) or die $!; my $access_token = $cfg->param('access_token'); my $access_token_secret = $cfg->param('accesss_token_secret'); my $user_id = $cfg->param('user_id'); my $screen_name = $cfg->param('screen_name'); my $consumer_key = $cfg->param('consumer_key'); my $consumer_secret = $cfg->param('consumer_secret'); my $nt = Net::Twitter->new( traits => [qw/API::REST OAuth/], ( consumer_key => $consumer_key, consumer_secret => $consumer_secret ) ); $nt->access_token($access_token); $nt->access_token_secret($access_token_secret); $nt->update('Test Net::Twitter mit OAuth!') or die $!; my $statuses = $nt->user_timeline( { count => 10 } ); foreach my $status (@$statuses) { print $status->{text}, "\n"; } $nt->end_session(); exit;
Siehe auch
- OAuth: An open protocol to allow secure API authorization in a simple and standard method from desktop and web applications.
- /var/log/rant: Surviving the Twitpocalypse
- CPAN: Config::Simple
- CPAN: Net::Twitter
- CPAN: Net::Twitter Examples
- CPAN: Net::Twitter::OAuth
- Twitter: http://apiwiki.twitter.com/
- Zeit.de: "OAuth" soll Passwortraub bei Twitter verhindern
Fehlende Links, Ergänzungen, Anregungen?
Bitte einfach als Kommentar. Danke.
Jetzt kommentieren