Home > Perl, Programmierung, Twitter > Twitter mit Perl – Tutorial Teil II: Direct Messages versenden

Twitter mit Perl – Tutorial Teil II: Direct Messages versenden

Ein sinnvolle Erweiterung zu dem im Teil I vorgestellten Perl-Script, mit dem man direct messages via Twitter versenden kann wäre folgendes: Bevor man die direct message abschickt soll geprüft werden, ob der Empfänger mir überhaupt noch folgt – ansonsten kann ja keine direct message verschickt werden. So einfach geht das:

#zuerst prüfen, ob Empfänger noch mein follower?
$usera=”Simon_A_Frank”;
$userb=”kulturzwitscher”;
$response = $ua->get(“http://twitter.com/friendships/exists.xml?user_a=$usera&user_b=$userb”);

if ($response->is_success) {
print “Noch follower: “.$response->content.”\n”;
} else {
print “Abbruch – kein Follower mehr (oder ein anderer Fehler): “;
print $response->status_line;
die();
}

Für die Überprüfung von Friendships / Follower ist übrigens nicht unbedingt ein Login erforderlich (nur bei Twitterusern mit geschützten Tweets).

Und hier nochmals den gesamten Code aus Teil I des Tutorials ergänzt um die Follower-Überprüfung:

#!/usr/bin/perl

use LWP::UserAgent;
my $ua = LWP::UserAgent->new;

#sinnvolle LWP Settings
$ua->timeout(10);
$ua->env_proxy;

# Empfänger
$form{user}=”Simon_A_Frank”;

#Nachricht (max 140 Zeichen)
$form{text}=”Hallo Simon!”;

#Absender – Twitteruser und Passwort
$twitteruser=”deintwitterusername”;
$twitterpw=”deinpw”;
$ua->credentials( “twitter.com:80″, “Twitter API”, $twitteruser => $twitterpw);

#zuerst prüfen, ob Empfänger noch mein follower?
$usera=”Simon_A_Frank”;
$userb=”kulturzwitscher”;
$response = $ua->get(“http://twitter.com/friendships/exists.xml?user_a=$usera&user_b=$userb”);

if ($response->is_success) {
print “Noch follower: “.$response->content.”\n”;
} else {
print “Abbruch – kein Follower mehr (oder ein anderer Fehler): “;
print $response->status_line;
die();
}

#Erfolg – dann die direct message senden:
$response = $ua->post(“http://twitter.com/direct_messages/new.xml”,\%form );

if ($response->is_success) {
#Hat geklappt!
print “DM erfolgreich verschickt!”;
} else {
#ging nicht …
print “Nicht erfogreich, Fehler: ” . $response->status_line;
}

Update am 02.09.2010: Ende August 2010 hat Twitter “Basic Auth” abgestellt, d. h. dieses Script funktioniert so wie dargestellt nicht mehr ganz. Stattdessen muss auf OAuth umgestellt werden. Wie das geht habe ich im folgenden Tutorial beschrieben.

  1. Es gibt noch keine Kommentare.
  1. Keine Trackbacks bisher.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

Gravatar
WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Log Out / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Log Out / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Log Out / Ändern )

Verbinde mit %s

Follow

Get every new post delivered to your Inbox.