Mikro-Blogging mit Net::Twitter und OAuth

| | Kommentare (0)

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

 

Fehlende Links, Ergänzungen, Anregungen?

Bitte einfach als Kommentar. Danke.

Jetzt kommentieren

Über diese Seite

Diese Seite enthält einen einen einzelnen Eintrag von Thomas Fahle vom 5.09.10 15:30.

Parallel::Iterator - Mehrere Tasks parallel ausführen ist der vorherige Eintrag in diesem Blog.

URI::Find - Extraktion von URIs aus beliebigen Texten ist der nächste Eintrag in diesem Blog.

Aktuelle Einträge finden Sie auf der Startseite, alle Einträge in den Archiven.

Blog Roll

Powered by

Powered by Movable Type 5.2.10

Creative Commons-Lizenz

Creative Commons License
Dieses Weblog steht unter einer Creative Commons-Lizenz.