2010-12-08 26 views
0

J'ai un peu raté mais je n'ai rien trouvé qui puisse résoudre mon problème.Facebook image PHP

J'ai réussi à poster sur la page en tant qu'administrateur de page, le lien est ajouté correctement, mais l'image n'est pas jointe. Mon code:

Blahblah authentication, etc. 

     $attachment = array(
      'message' => 'text', 
      'name' => 'Name', 
      'link' => 'http://somelink.com', 
      'description' => '', 
      'access_token' => $ACCESS_TOKEN 
     ); 

     if(something) $attachment['media'] = array(array('type'=>'image', 'src'=>'http://'.$_SERVER['HTTP_HOST']."/media/file/image_by_id/".$data['thumb_file_tree_id'].'/?w=400&h=500', 'href'=>'http://somelink.com')); 


     try { 
      if($facebook->api('/XXX/feed', 'post', $attachment)) 
      { 
       echo 'Hooray, ok'; 
      } 
     } catch (FacebookApiException $e) { 
      echo 'Damn'; 
     } 

Résultat: Correctement posté nouvelles avec lien ('Hourra, ok'), mais sans image. Peut-il être dû à l'image générée par PHP, et pas à l'extension png/jpg/gif? J'ai ajouté des en-têtes supplémentaires comme etag, acceptées, modifiées, etc. Qu'est-ce que je fais de mal (encore)?

'Quelque chose' est vrai, vérifié avec print_r ensemble tableau de pièces jointes.

E: Encore une fois enlevé [0]

+0

Plutôt que de demander si cela peut être dû à cela, éliminez-le. Remplacer cette image avec l'URL d'un fichier statique et voir si quelque chose change. Aussi, $ attachment ['media'] est-il censé être un tableau contenant un seul élément qui est un autre tableau? –

+0

Vérifié avec l'image normale - ne fonctionne pas non plus. Oui, ça doit être comme ça. Ajout de $ attachment >> [0] << ['media']. Alors, qu'est-ce qui ne va pas maintenant? – Misiur

+0

Je ne suis pas sûr que 'echo 'Damn';' se qualifie comme traitement d'erreurs bénéfiques. – jordanstephens

Répondre

1

Pour attacher juste une image, vous pouvez utiliser la clé de l'image dans votre pièce jointe.

$attachment = array(
      'message' => 'text', 
      'name' => 'Name', 
      'link' => 'http://somelink.com', 
      'description' => '', 
      'access_token' => $ACCESS_TOKEN, 
      'picture' => 'http://example.com/example.jpg' 
); 
+0

OMG, cela fonctionne comme un charme. Vous monsieur, êtes une vie/temps – Misiur