Bild hochladen mit facebook API

Frage: Wie kann man ein Bild hochladen von meinem webserver auf facebook via FB API?

Ich Schreibe eine Anwendung, die ruft Bilder aus der user-Foto-album, macht einige änderungen (z.B. das hinzufügen von Wasserzeichen), dann schicken Sie es zurück zu Foto-album.

Den code, den ich verwenden, um das Foto hochzuladen, ist 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. Genauer gesagt, bekomme ich immer eine "Falsche Signatur" angezeigt.

Was ist falsch an dem code???

Was ist der @ für $args['Lenna.png']="@/home/thoai/htdocs/apps/bemyfans/Lenna.png"; ?
Ja, was ist das?
Die cURL sendet den Inhalt der Datei und nicht der Dateiname.
Ah, gut, das ist, warum. Siehe meine aktualisierte Antwort.

InformationsquelleAutor thoaionline | 2009-10-05

Schreibe einen Kommentar