Tutorial: Facebook-API Programmierung mit Perl (neue Version)

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

 

Dieser Beitrag wurde unter API, Facebook, Graph API, Perl, Programmierung, Social Networks veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Kommentar verfassen

This site uses Akismet to reduce spam. Learn how your comment data is processed.