2010-08-09 5 views
1

J'ai quelques problèmes avec l'utilisation de Facebook Graph API.Questions sur l'API du graphe Facebook et sur le SDK PHP

1). Lorsque j'essaie de télécharger une photo, j'obtiens l'erreur suivante "(# 324) Nécessite un fichier de téléchargement".

$attachement = array(
          'access_token'=> (...)', 
          'name' => 'uploaded foto', 
          'source' => 'C:\Documents and Settings\Username\Desktop\1.jpg' 
        ); 

     $fb_foto = $fb->api('me/photos','POST',$attachement); 

Je suis sûr que la source est correcte. J'ai essayé avec une photo de l'Internet et pas du PC local de mu également.

2). Comment puis-je supprimer un objet de Facebook? (un message mural par exemple). J'ai essayé ceci: $ fb-> api ('/ post_id', 'POST', array ('méthode' => 'supprimer'));

Mais je reçois une erreur "POST request non pris en charge".

Toute aide serait appréciée.

EDIT: Voici la solution complète que j'ai trouvée pour télécharger des photos sur Facebook. Vous devez avoir la version 2.1.1 ou au-dessus de PHP SDK

$fb = new Facebook(array(
         'appId' => ..., 
         'secret' => ..., 
         'cookie' => true, 
     )); 

$fb->setFileUploadSupport(true); 
     $attachement = array(
          'access_token'=> '...', 
          'name' => 'uploaded foto', 
          'source' => '@absolute_path_to_the_file' 
        ); 



     $fb_foto = $fb->api('me/photos','POST',$attachement); 
+0

Que contient $ attachement? – Sebs

+0

J'ai modifié le post avec les détails complets de $ attachment. – brpaz

Répondre

1

Concernant votre 2ème problème, je me souviens avoir lu quelque part sur une demande SUPPRIMER, au lieu de POST. Voir: http://developers.facebook.com/docs/api#deleting

+0

Je savais que je l'avais vu quelque part. Merci – brpaz

+0

Cela a fonctionné pour vous? (Emission d'une requête DELETE sur une photo?) – rinogo

1

Lire the documentation

curl -F 'access_token=...' \ 
    -F '[email protected]' \ 
    -F 'message=Caption for the photo' \ 
    https://graph.facebook.com/me/photos 

Voyez comment le paramètre source est formaté?

$fb_foto = $fb->api('me/photos','POST',array(
    'access_token' => (...) 
    , 'message'  => 'Caption' 
    , 'source'  => '@' . realpath('path/to/file') 
)); 

Pour supprimer des photos, encore une fois the documentation Votre réponse: émettre une demande SUPPRIMER

$fb->api('/PHOTO_ID', 'DELETE'); 
+1

J'ai essayé mais j'ai quand même la même erreur. Ma seule explication est parce que je travaille chez localhost. Anywhay je n'ai pas d'autres problèmes (poster au mur, poster des commentaires, etc.). 'Name' => 'upload foto', 'source' => '@'. \ Desktop \ 1.jpg ') ); $ fb_foto = $ fb-> api ('moi/photos', 'POST', $ attachement); – brpaz

+0

oh, certainement à cause de localhost –

+0

Non ce n'était pas localhost. C'était un bug avec php SDK. J'ai mis à jour à la version 2.1.1 et ajoutez cette ligne: $ fb-> setFileUploadSupport (true); Maintenant tout fonctionne bien. – brpaz

1

J'utilise cette méthode avec le nouveau php-sdk (v2.1.1, facebook-php-sdk -v2.1.1-0-g08909f3.zip) pour télécharger une photo pour un nouvel événement. Le code php ci-dessous crée l'événement.

 
$fname="/tmp/foo.jpg"; 
$attachment = array(
     'access_token' => $facebook->getAccessToken(), 
     'name' => substr(event_name), 
     'description' => my_description, 
     'start_time' => my_start_time, 
     'link' => my_link, 
     'source'=> '@'.$fname 
     ); 
$result = $facebook->api('/me/events', 'POST', $attachment);