Je souhaite télécharger une photo sur facebook pour un utilisateur dans l'album par défaut d'une application. Ceci est décrit dans la publication ici: http://developers.facebook.com/docs/reference/api/photoException lors du téléchargement d'une photo avec Facebook Graph API
La méthode a été répondue ici: How can I upload photos to album using Facebook Graph API. J'utilise les éléments suivants:
$args = array(
'message' => 'Photo Caption',
'image' => '@'.realpath("image.png")
);
$data = $facebook->api('/me/photos', 'post', $args);
Cependant je reçois l'exception « (# 324) Nécessite fichier de téléchargement » lorsque je tente cela. J'ai une session valide et j'ai les permissions publish_stream et user_photos. Je peux récupérer des données en utilisant l'API. Le fichier image est définitivement valide car il peut être chargé avec file_get_contents(realpath("image.png"))
.
J'ai essayé cette solution, en utilisant curl, qui fonctionne parfaitement: 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);
Par rapport à la boucle PHP SDK Facebook qui ressemble à ceci (en utilisant les mêmes args $ et $ 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);
Pourquoi la version PHP ne fonctionne-t-elle pas? On dirait que la fonction http_build_query() interfère avec le chargement de l'image. Je ne connais pas assez curl pour comprendre ce qui se passe ici.
Merci beaucoup pour cela - m'a sauvé après une longue période de recherche – Lobe
Si vous utilisez ce, sachez que les messages créés par l'utilisateur peuvent créer le téléchargement de fichiers non intentionnels ou malveillants. – peterjwest
Merci! On pourrait penser que cela serait important dans la documentation pour les téléchargements de photos. . . WTH !!! – TuK