Vor gut drei Jahren hatte ich bereits ein kurzes Tutorial geschrieben, wie man mit Perl ganz unkompliziert und ohne spezielle Module die Facebook API nutzen kann, um z. B. einen Eintrag auf die eigene Pinnwand zu posten (siehe mein Tutorial vom Oktober 2010). Die Anleitung des Tutorials ist soweit noch brauchbar, nur den Code habe ich im Folgenden etwas optimiert:
#!/usr/bin/perl use LWP::UserAgent; use Encode; use Net::OAuth; $Net::OAuth::PROTOCOL_VERSION = Net::OAuth::PROTOCOL_VERSION_1_0A; # OAuth: Tokens für den Twitter-User # ACHTUNG: pipes im Token maskieren - also \| my $accesstoken = "???"; my $accesssecret = "???"; # OAuth: Keys für die App my $consumerkey ="???"; my $consumerkeysecret="???"; # Allgemeines my $APIurl = 'https://graph.facebook.com/simon.a.frank/feed'; my $reqmethod = 'POST'; # Name des UserAgent - eigentlich egal my $UAname="myFBScript"; # Zufallszahl achtstellig für Nonce my $zufallszahl = int(rand(90000000))+ 10000000; # OAuth request vorbereiten my $request = Net::OAuth->request("protected resource")->new( consumer_key => $consumerkey, consumer_secret => $consumerkeysecret, request_url => $APIurl, request_method => $reqmethod, signature_method => 'HMAC-SHA1', timestamp => time, nonce => "$zufallszahl", token => $accesstoken, token_secret => $accesssecret, extra_params => { message => decode_utf8($nachricht), } ); # OAuth signieren $request->sign; print "\n".$request->to_post_body."\n"; #sinnvolle LWP Settings - siehe doku my $ua = LWP::UserAgent->new; $ua->timeout(10); $ua->env_proxy; # http Request vorbereiten und senden my $httpheader = HTTP::Headers->new('User-Agent' => $UAname); my $httprequest = HTTP::Request->new($reqmethod, $APIurl, $httpheader, $request->to_post_body); my $httpresponse = $ua->request($httprequest); # Erfolg? if ($httpresponse->is_success) { #Hat geklappt! print "Post erfolgreich verschickt!\n\n"; print "\nContent: " . $httpresponse->content . "\n"; } else { #ging nicht ... print "Nicht erfogreich, Fehler: " . $httpresponse->status_line; print "\nContent: " . $httpresponse->content . "\n"; } print "\n\n";
Details und Tipps siehe auch mein Tutorial von Oktober 2010.
P.S.
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