Bild mit Facebook API hochladen

Frage: Wie lade ich ein Bild von meinem Webserver über die FB-API auf Facebook hoch?

Ich schreibe eine Anwendung, mit der Bilder aus dem Fotoalbum des Benutzers abgerufen, einige Änderungen vorgenommen (z. B. ein Wasserzeichen hinzugefügt) und dann an das Fotoalbum zurückgesendet werden.

Der Code, den ich zum Hochladen des Fotos verwende, lautet wie folgt

<?php
include_once("api/facebook.php");
include_once("config.php");
include_once("utils.php");
include_once("bemyfans.php");
$facebook=new Facebook($api_key,$app_secret);
$facebook->require_frame();
$user=$facebook->require_login();
echo "<p>Hello <fb:name useyou='false' uid=\"$user\"/></p>";
$args = array(
  'api_key' => $api_key,
  'call_id'=>microtime(true),
  'v'=>'1.0',
  'format' => 'JSON'
);
$args['Lenna.png']="@/home/thoai/htdocs/apps/bemyfans/Lenna.png";
signRequest($args,$secret);
$ch = curl_init();
$url = 'http://api.facebook.com/restserver.php?method=photos.upload';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
if ($data = curl_exec($ch)) echo "done";
echo $data;

function signRequest(&$args, $secret){
  ksort($args);
  $sig = '';
  foreach($args as $k => $v){
    $sig .= $k . '=' . $v;
  }
  $sig .= $secret;
  $args['sig'] = md5($sig);
}
?>

Es funktioniert einfach nicht. Insbesondere erhalte ich immer wieder die Meldung "Falsche Signatur".

Was ist los mit dem Code ???

Antworten auf die Frage(4)

Ihre Antwort auf die Frage