web-dev-qa-db-fra.com

Télécharger une photo dans un album avec l'API Graph de Facebook

J'essaie de me familiariser avec la nouvelle API Graph de Facebook et jusqu'à présent, je peux récupérer et écrire des données assez facilement.

Quelque chose que j'ai du mal à trouver une documentation décente est le téléchargement d'images vers un album.

Selon http://developers.facebook.com/docs/api#publishing , vous devez fournir l'argument du message . Mais je ne sais pas trop comment le construire.

Les anciennes ressources que j'ai lues sont:

Si quelqu'un a plus d'informations ou pourrait m'aider à télécharger des photos vers un album en utilisant Facebook Graph API, répondez!

43
st4ck0v3rfl0w

Voici différentes façons de télécharger des photos à l'aide de l'API Facebook Graph PHP. Les exemples supposent que vous avez instancié l'objet $ facebook et que vous avez une session valide.

1 - Téléchargement vers l'album d'application par défaut de l'utilisateur actuel

Cet exemple télécharge la photo dans votre album d'applications par défaut de l'utilisateur actuel. Si l'album n'existe pas encore, il sera créé.

$facebook->setFileUploadSupport(true);
$args = array('message' => 'Photo Caption');
$args['image'] = '@' . realpath($FILE_PATH);

$data = $facebook->api('/me/photos', 'post', $args);
print_r($data);

2 - Télécharger vers l'album cible

Cet exemple télécharge la photo dans un album spécifique.

$facebook->setFileUploadSupport(true);
$args = array('message' => 'Photo Caption');
$args['image'] = '@' . realpath($FILE_PATH);

$data = $facebook->api('/'. $ALBUM_ID . '/photos', 'post', $args);
print_r($data);
48
Brody Robertson

Voici le code qui a fonctionné pour moi:

//upload photo
$file= '/path/filename.jpg';
$args = array(
   'message' => 'Photo from application',
);
$args[basename($file)] = '@' . realpath($file);
$ch = curl_init();
$url = 'http://graph.facebook.com/'.$album_id.'/photos?access_token='.$access_token;
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);
//returns the photo id
print_r(json_decode($data,true));

Lien vers la documentation: http://developers.facebook.com/docs/reference/api/photo

22
AhDang

Vous devez faire quelques choses pour que l'api du graphique fonctionne avec php. Ce code fonctionne. Remarquez le fileUpload => true ...

Je n'ai également jamais réussi à le faire fonctionner avec javascript, donc je fais ajax à ceci:

require './facebook.php';

$facebook = new Facebook(array(  
  'appId'  => 'ID',  
  'secret' => 'SECRET',  
  'fileUpload' => true,  
  'cookie' => true // enable optional cookie support  
));  


$facebook->setFileUploadSupport(true);  

# File is relative to the PHP doc  
$file = "@".realpath("../../_images/stuff/greatness.jpg");  

$args = array(  
    'message' => 'Photo Caption',  
    "access_token" => "urtoken",  
    "image" => $file  
);  


$data = $facebook->api('/ALBUMID_GOES_HERE/photos', 'post', $args);
if ($data) print_r("success");
</code>
7
Alex Grande