Add picture on facebook wall using php

November 1, 2009
Filed under: FaceBook Integration, Featured, PHP 

First Follow the 5 Steps from my Previous post then in last program include the below code to publish a photo and also meta data on a facebook wall.

Publishing a Post Containing an Image, Action Links and Custom Metadata

$message = 'Check out this cute pic.';

$attachment = array( 'name' => 'i\'m bursting with joy',
'href' => '',
 'caption' => '{*actor*} rated the lolcat 5 stars', 'description'
 => 'a funny looking cat', 'properties' => array('category'
 => array( 'text' => 'humor', 'href' =>
''), 'ratings' => '5 stars'),
 'media' => array(array('type' => 'image', 'src' =>
 'href' => '')),  'latitude' => '41.4',
 //Let's add some custom metadata in the form of key/value pairs 'longitude' => '2.19');
$action_links = array( array('text' => 'Recaption this',
 'href' => ''));
 $facebook->api_client->stream_publish($message, $attachment, $action_links);

Exiting isn’t it.



21 Comments on Add picture on facebook wall using php

  1. Arun on Mon, 1st Feb 2010 9:01 am
  2. hi, I am following this code, and the stream is published on the facebook waal. Bu the thumbnail of the image is not coming. Am used the above code and the “src” in the attachemnt link only change, But the thumb is not coming..

  3. Steven Robert on Mon, 1st Feb 2010 10:43 pm
  4. Arun, Is the Image a public URL.
    if its a local URL then it will not work.
    try with some public URL.

  5. Arun on Thu, 25th Feb 2010 2:33 am
  6. Hi,
    One question , i am posting 3 pictures to the wall, sometimes only one picture is loaded in to the wall and there is coming the “cross” image is coming for the next two images. But when checking after 20-30 min all the 3 images are loaded in the wall. When i check the source of this html code, i found the image thumbs are there, but the images are not loaded in facebook. what is the reason behind this? Why facebook not loaded all the pictures instantly. I am using your code but not submit a description for the images.

  7. Steven Robert on Fri, 26th Feb 2010 12:18 am
  8. Hi Arun, can you give your wall link

  9. Arun on Fri, 26th Feb 2010 5:25 am

    Here is the link to my wall. there was a posting with title “Pickle Pond” . No images are loaded

  11. Arun on Fri, 26th Feb 2010 5:33 am
  12. please look the source of the images in the wall, the thumbs are there but not loaded…

  13. D on Fri, 26th Feb 2010 5:42 am
  14. Guys,
    my image in not visible on wall. any reason
    I m using above posted script with publish URL in image src.


  15. Yahya on Sun, 1st Aug 2010 4:59 am
  16. Hi,
    I tried sample code on this link and it works very well.

    But when I tried this example, I keep getting this error ‘exception ‘FacebookRestClientException’ with message ‘The post’s links must direct to the application’s connect or canvas’

  17. Tomas Teicher on Mon, 27th Dec 2010 2:51 am
  18. I got same error as Yahya. Is there any facebook documentation where I can find out what every item in array of attachment means? I did not find any documentation of Facebook class on facebook web.

  19. Plamen on Thu, 6th Jan 2011 10:52 am
  20. Can you please help me I can’t get your code working.
    Except that code from the post what exacly do I need in my .php file to get it working?

  21. lizzy on Sun, 13th Feb 2011 5:36 am
  22. Hi Steven, thank you for your codes.
    I have successfully follow the 5 Steps from your previous post, and now am trying to add a picture to it.

    in your post from this page
    “..then in last program include the below code to publish a photo and also meta data on a facebook wall”

    where do I actually have to add the codes above on adding the picture?

    Hear from you soon, thanks


  23. Steven Robert on Mon, 14th Feb 2011 12:03 am
  24. @Lizzy in line no 9 “image’, ‘src’ =>” here is where u add your image. remember this link should be public and not your local address.

  25. lizzy on Tue, 15th Feb 2011 5:12 am
  26. hi steve, thank you for the reply. got it.
    but today I have an error..

    I think I will reply on to the previous topic, under your “5 Steps to publish…” topic :)


  27. vishal on Mon, 28th Feb 2011 12:46 pm
  28. Hi.

    My facebook application has an HTML table as the output. Some of its cells have images and others have text elements. Basically, the table is dynamically created using the user profile information. Now I want to publish the same output on the user’s wall. How do I achieve this?

  29. Steven Robert on Mon, 28th Feb 2011 11:05 pm
  30. @vishal Facebook will strip all the html content before publishing to wall

  31. vishal on Tue, 1st Mar 2011 8:35 am
  32. !!!!!!!

  33. pls on Thu, 7th Apr 2011 8:33 am
  34. Someone can give me an an example ? I would to integrate this script in mien but i don’t know how ?

    Below it is just a script to ask permissions to the visitors to acess to its information

    ‘secret’ => FB_SECRET_ID,
    ‘cookie’ => true,

    // On récupère la session Facebook de l’utilisateur
    $session = $fb->getSession();

    $me = null;

    // On teste si la session existe
    if ($session) {

    try {

    // On teste si l’utilisateur est en session
    if (isset($_SESSION[‘user’]) && isset($_SESSION[‘uid’])) {
    // On récupère les données en session: Gain en perf: économie d’appel à l’API
    $me = $_SESSION[‘user’];
    $uid = $_SESSION[‘uid’];
    $user_id = $_SESSION[‘user_id’]; // ID du membre en BDD
    else {
    // On récupère l’UID de l’utilisateur Facebook courant
    $uid = $fb->getUser();
    // On récupère les infos de base de l’utilisateur
    $me = $fb->api(‘/me’);

    // On stock les infos de l’utilisateur en session: Pseudo cache
    $_SESSION[‘uid’] = $uid;
    $_SESSION[‘user’] = $me;

    // Session n’existe pas, on INSERT/MAJ les infos de l’user
    $query = “INSERT INTO user SET uid = ‘”.$uid.”‘, lastname='”.mysql_real_escape_string($me[‘last_name’]).”‘, firstname='”.mysql_real_escape_string($me[‘first_name’]).”‘, created_at = NOW(), last_login=NOW() ON DUPLICATE KEY UPDATE last_login = NOW()”;
    $res = mysql_query($query);

    $user_id = mysql_insert_id();
    $_SESSION[‘user_id’] = $user_id;
    }catch (FacebookApiException $e) {

    // S’il y’a un problème lors de la récup, perte de session entre temps, suppression des autorisations…

    // On récupère l’URL sur laquelle on devra rediriger l’utilisateur pour le réidentifier sur l’application
    $loginUrl = $fb->getLoginUrl(
    ‘canvas’ => 1,
    ‘fbconnect’ => 0
    // On le redirige en JS (header PHP pas possible)
    echo “top.location.href = ‘”.$loginUrl.”‘;”;

    else {
    // Si l’utilisateur n’a pas de session

    // On récupère l’URL sur laquelle on devra rediriger l’utilisateur pour le réidentifier sur l’application
    $loginUrl = $fb->getLoginUrl(
    ‘canvas’ => 1,
    ‘fbconnect’ => 0,
    ‘req_perms’ => ‘publish_stream’
    // On le redirige en JS (header PHP pas possible)
    echo “top.location.href = ‘”.$loginUrl.”‘;”;

    // On affiche le Header

  35. Ko on Thu, 29th Mar 2012 2:59 pm
  36. Hi,

    New Issue for new Facebook timeline !!,

    After I try this code for Publish on Facebook Fan Page …the result working well but!!! the message and photo show as “Recent Posts by Others on Owner fan page” (left window)which I think should auto wall post show “Post by Page ” (right window) will better .

    Is it possible todo ?

  37. Ramansai on Mon, 23rd Jul 2012 10:08 am
  38. i want know how php generated image could post onto facebook wall without storing on the server mighty be jpg or png,gif

  39. Steven Wall on Tue, 24th Jul 2012 12:26 am
  40. @Ramansai,
    U can post any image even generated from code, but it should have a live url,

  41. awesome engagement rings on Thu, 23rd Aug 2012 3:54 am
  42. Hurrah, that’s what I was seeking for, what a material! present here at this website, thanks admin of this site.

Tell me what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!

To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Anti-spam image