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.

Dieser Beitrag wurde unter Perl, Programmierung, Twitter abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.