Aufgrund einer aktuellen Anfrage: Wer meine Codebeispiele für die Twitter API mit Perl nutzt und noch ein Bild mit dem Tweet senden möchte, kann den Code wie folgt ergänzen:
Bevor der eigentlich Tweet geschickt wird, muss das Bild bei Twitter upgeloaden werden. Nach dem Upload erhält man die „Media-ID“, die man dann bei dem eigentlichen Tweet angibt – so wird dann das zuvor hochgeladene Bild mit dem Tweet verknüpft:
#...
use GD;
use MIME::Base64;
#...
my $APIurl = 'https://upload.twitter.com/1.1/media/upload.json';
my $im = new GD::Image->newFromPng("test.png",1);
my $binfiledata=encode_base64($im->png(0));
my $oarequest
= Net::OAuth->request('protected resource')->new(
version => '1.0',
consumer_key => $consumerkey,
consumer_secret => $consumerkeysecret,
request_url => $APIurl,
request_method => "POST",
signature_method => 'HMAC-SHA1',
timestamp => time,
nonce => int(rand(9000) + 1000),
token => $accesstoken,
token_secret => $accesssecret,
extra_params => {
media_data => $binfiledata
}
);
$oarequest->sign;
my $httpheader = HTTP::Headers->new(
'Authorization' => $oarequest->to_authorization_header,
'Content-Type' => 'application/x-www-form-urlencoded'
);
my $httprequest = HTTP::Request->new("POST", $APIurl,
$httpheader, $oarequest->to_post_body);
my $response = $ua->request($httprequest);
print "\nUpload: ";
if ($response->is_success)
{
print "\n\nerfolgreich - ";
my @splitTemp1;
@splitTemp1=split(/\,/,$response->content);
my $temp1=$splitTemp1[0];
my @splitTemp2;
@splitTemp2=split(/\:/,$temp1);
$mediaId=$splitTemp2[1];
print "Media-ID:$mediaId\n\n";
}
else
{
print "fehlgeschlagen: ";
print "\n\n".$response->content."\n\n";
print "\n\n".$response->status_line."\n\n";
}
Den eigentlichen Tweet erweitert man dann um den folgenden Extra-Parameter:
token => $accesstoken,
token_secret => $accesssecret,
extra_params => {
media_ids => $mediaId,
status => decode("iso-8859-1",$nachricht)
}
);
Probleme? Fragen? Anregungen? Ich helfe jederzeit und gerne – einfach einen Kommentar oder Mail schreiben, die Antwort kommt schnellstmöglich. Unternehmen, die Unterstützung, Beratung oder Schulung bei der API- oder Webprogrammierung, der Social-Media-Entwicklung oder dem Social-Media-Management benötigen finden zudem entsprechende Angebote meiner Firma auf der Website www.Frank-IT-Beratung.de

fb.com/mySocialWebDevBlog
@Simon_A_Frank