Facebook Application About Page

5 Steps to publish on a facebook wall using php

Since Facebook has stopped supporting Java we need to use PHP for now to post on a wall.

According to facebook Wiki posting on a  wall is very confusing and very difficult to write a program to publish on a wall.

I spent around 2 weeks reading many articles and many documents, Wiki on facebook but in vein and tried many ways and finally I got one workable model. Below are 5 simple steps to publish on a Facebook wall.

Step1: Login to Facebook to Create a Facebook App

First login to Facebook and goto the url http://www.facebook.com/developers/ then

Click on “+ Set Up New Application” button to start creating the application as shown below.

Create New Facebook application

Provide the application name, click agree for facebook terms and click on “Create Application” button.

Fill in application Name

create app step1

Now Application is created for you. Just copy the Application API Key, Application Secret and Application ID details which will be used to write the application code.

Fill the Name and Description of your application in About Link.

Facebook Application About Page

Now Click on Website Link to get API Key

Facebook Application web Site

Now goto Facebook Integration link and enter any url. Here is where you will get Secret Key.

Enter the Canvas URL and page name. This will be the return URL of your Application.

Facebook Application Facebook Integration

That’s it You now just successfully create a Facebook Application, now lets work on program

Then click on Save. That’s it we have created a facebook application with an Iframe.

Now Copy Application API Key, Application Secret and Application ID details which will be used to write the application code.

Now download the php library from facebook “http://blog.theunical.com/wp-content/uploads/2010/05/facebook-platform.tar.gz

Step2: Generate One Time Token to generate Session key

How to generate One Time Session key:

Run below URL to get temporary token for the particular user by logging into Facebook.

https://login.facebook.com/code_gen.php?api_key=API_KEY&v=1.0

Note: Please replace “API_KEY” with your application API key from above page.

Then we will get a temporary token key.

allowaccess

generatemylogin info

savemyinfo

This is one time token key that we can use to generate a permanent session key. Careful! Don’t try to execute this programs many times

Step3: Generate one time session key (permanent session key)

Below is the sample PHP code to generate one time session key.

<?php

// FB_APIKEY is your facebook application api key

// FB_SECRET is your application secrete key

$FB_APIKEY="YOUR_API";

$FB_SECRET="YOUR_SECRET";

$fb = new FacebookRestClient($FB_APIKEY, $FB_SECRET);

$testtoken= "ONETIMETOKEN"; // Replace this value with your Token Value

$result = $fb->call_method('facebook.auth.getSession',

array('auth_token' => $testtoken, 'generate_session_secret' => true));

echo "<br /><pre>";

print_r($result);

echo $session_key = $result['session_key'];

?>

(OR)

For example, the full URL for logging in a user could be:

http://www.facebook.com/login.php?api_key=YOURAPIKEY&connect_display=popup&v=1.0&next=http://www.facebook.com/connect/login_success.html&cancel_url=http://www.facebook.com/connect/login_failure.html&fbconnect=true&return_session=true&session_key_only=true&req_perms=read_stream,publish_stream,offline_access

If the user is redirected to the URL specified by the next parameter, then Facebook grants your application a session. This session is appended to the URL as a JSON-decodable object of the form:

&session={“session_key”:”SESSIONKEY”, “uid”:USERID, “expires”:0 || UNIXTIME, “secret”:”SESSIONSECRET”}

In continuing with the above example, the redirect for a successful login would be:

http://www.facebook.com/connect/login_success.html?session=%7B%22session_key%22%3A%223.kxhAu6W0qo_bLGjmdWrgfw__.86400.1243443600-688626964%22%2C%22uid%22%3A%22688626964%22%2C%22expires%22%3A1243443600%2C%22secret%22%3A%220NVNMxpO6jVyDcVCvVv_PA__%22%2C%22sig%22%3A%22ac1c0c77c137567389defea70481b7aa%22%7D

If the user grants your application the offline_access extended permission, 0 gets returned for expires and the session never expires unless the user removes the application. In this case, you should store the session key so the user doesn’t have to log in the next time he or she launches your application.

Note: The above code will execute only once. We should note down the above session key, This will be used to auto login into the application.

If you don’t save these session key values you should generate other token key to create one time session key.

We can use the token only once.


Step4: Setting Permission for wall

Giving Permission to your application to publish on facebook wall. To give permission just replace the your API key in below URL and execute in browser.

http://www.facebook.com/login.php?api_key=APIKEYXxxxxxxxxxxxxxxxxx&connect_display=popup&v=1.0&next=http://www.facebook.com/connect/login_success.html&cancel_url=http://www.facebook.com/connect/login_failure.html&fbconnect=true&return_session=true&req_perms=read_stream,publish_stream,offline_access

Then you must see the below 3 Screens

If you don’t see the below then your call back URL or Canvas URL must be incorrect, please check again your application settings and execute the URL again.

allowpermission

allowpublishing

Then on final page, you will see a success message.  That’s it you have given permission for read_stream,publish_stream and offline_access.

Step5: Publishing the message on Facebook Wall


PHP Code to create facebook object with onetime session key and publishing the message on Facebook Wall.

<?php

define('FB_APIKEY', 'YOUR_APIKEY');

define('FB_SECRET', 'YOUR_SECRET');

define('FB_SESSION', 'YOUR_SESSION_key');

require_once('facebook-platform/php/facebook.php');

echo "post on wall";

try {

$facebook = new Facebook(FB_APIKEY, FB_SECRET);

$facebook->api_client->session_key = FB_SESSION;

$fetch = array('friends' =>

array('pattern' => '.*',

'query' => "select uid2 from friend where uid1={$user}"));

echo $facebook->api_client->admin_setAppProperties(array('preload_fql' => json_encode($fetch)));

$message = 'From My App: publish steven on facebook';

if( $facebook->api_client->stream_publish($message))

echo "Added on FB Wall";

} catch(Exception $e) {

echo $e . "<br />";

}

?>

Now you will see the post on wall Great.

published on facebook

So thrilling isn’t we can also publish photos videos on wall.

In my next post see how to publish images and videos to facebook is done

http://blog.theunical.com/facebook…/add-picture-on-facebook-wall-using-php/

http://blog.theunical.com/facebook…/post-video-on-facebook-wall-using-php/

See here how to publish on facebook page as a facebook user

http://wiki.developers.facebook.com/index.php/Stream.publish

have a great day

— Steven

Steven Fan Page on Facebook

Please don’t copy this content to any site. This is fully protected by TheUnical Technologies

Post Laster Updated on 13 March 2011

308 thoughts on “5 Steps to publish on a facebook wall using php”

  1. Hello…i am following your 5 steps and built up a application and its going perfectly but after 2-3 months a checked then i got a error that your session was expired ot too old ,so for this i create new Token and Session…..can any one give me solution for that???I have to use that session all the time because i created dynamic application and i can’t create session each time.

    Please reply ASAP

  2. I am getting this error, plz help me.

    post on wall

    exception ‘FacebookRestClientException’ with message ‘Incorrect signature’ in D:\xampp\htdocs\wibiya\facebookapi_php5_restlib.php:3026 Stack trace: #0 D:\xampp\htdocs\wibiya\facebookapi_php5_restlib.php(2883): FacebookRestClient->call_method(‘facebook.admin….’, Array) #1 D:\xampp\htdocs\wibiya\test4.php(27): FacebookRestClient->admin_setAppProperties(Array) #2 {main}

  3. I have created session key . how to use session key ?….. for automatically login and how to read news feed……..

  4. I have successfully completed four steps i got session key now i am unable to automatically login what to do? how to use session key . and how to read news feed……

  5. I am using the library downloaded from this link . i have successfully completed 4 steps and got session key but i am not able successfully use this session key ? how to use session key please give me some examples . iam not able to login successfully login using this key every time when i run my program facebook login screen comes . there is any need of ui each time we run our application . how to read news feed .

    it’s very urgent please reply as soon as possible.

  6. hi please let us know what exactly is the “$user” variable in the query select uid2 from friend where uid1={$user} ,

  7. Excellеnt pieces. Keеp writing such kіnd οf infoгmatіon
    on уour page. Іm геally impreѕsed by it.

    Thаnks for sharing your thoughts on facebook integration.
    Regarԁs

  8. Hi,

    I have obtained the one time session as suggested above add set the Permission for wall as suggested but when I see the step5 Publishing the message on Facebook Wall, and followed it I got some errors.

    When I see the PHP SDK there is no code for the function $facebook->api_client->admin_setAppProperties and event there is no code for $facebook->api_client->session_key = FB_SESSION;

    Please suggest how it can be done with the latest PHP SDK code.

Leave a Reply

Your email address will not be published. Required fields are marked *

*
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