Vorrei caricare una foto su Facebook per un utente nell'album predefinito per un'applicazione. Questo è descritto sotto la pubblicazione qui: http://developers.facebook.com/docs/reference/api/photoEccezione durante il caricamento di foto con l'API di Facebook Graph
Il metodo è stato risolto qui: How can I upload photos to album using Facebook Graph API. Sto usando il seguente:
$args = array(
'message' => 'Photo Caption',
'image' => '@'.realpath("image.png")
);
$data = $facebook->api('/me/photos', 'post', $args);
Tuttavia ottengo l'eccezione "(# 324) Richiede file di caricamento" quando tento questo. Ho una sessione valida e ho le autorizzazioni publish_stream e user_photos. Posso recuperare i dati usando l'API. Il file immagine è sicuramente valido perché può essere caricato con file_get_contents(realpath("image.png"))
.
ho provato questa soluzione, usando curl, che funziona perfettamente: Upload Photo To Album with Facebook's Graph API
$args = array(
'message' => 'Photo from application',
'pic.png' => '@'.realpath('pic.png')
);
$tok = $session['access_token']
$url = 'http://graph.facebook.com/'.$album_id.'/photos?access_token='.$tok;
$ch = curl_init();
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);
$data = curl_exec($ch);
Rispetto PHP SDK ricciolo di Facebook, che assomiglia a questo (utilizzando gli stessi $ args e $ url):
$ch = curl_init();
$opts = self::$CURL_OPTS;
$opts[CURLOPT_POSTFIELDS] = http_build_query($args, null, '&');
$opts[CURLOPT_URL] = $url;
curl_setopt_array($ch, $opts);
$data= curl_exec($ch);
Perché la versione di PHP non funziona? Sembra che la funzione http_build_query() interferisca con il caricamento dell'immagine. Non ne so abbastanza di arricciare per capire cosa sta succedendo qui.
Grazie tanto per questo - mi ha salvato dopo un lungo periodo di ricerca – Lobe
Se si utilizza questo, essere consapevoli del fatto che i messaggi creati dagli utenti possono creare il caricamento di file involontarie o maliziose. – peterjwest
Grazie! Si potrebbe pensare che questo sarebbe importante nella documentazione per i caricamenti di foto. . . WTH !!! – TuK