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