oshirowanen
oshirowanen

Reputation: 15965

Which facebook API's?

Is it possible for me to post a message on a given users facebook wall, if they perform a certain action on my website?

Basically, I am looking for a step by step guide to achieve this, as I have not been able to figure out how to do this via the facebook documentation.

Upvotes: 3

Views: 468

Answers (7)

Harish
Harish

Reputation: 2324

Various steps involved

1)Register App at facebook developers

2)Get PHP SDK of Facebook

3)Get Offline access from user so that you can post in users wall without his permission(Use accordingly)

4)Save the access token given by facebook for the user

5)Using the access token by php SDK post into the wall

Check this question it may be of some help

Publishing To User's Wall Without Being Online/Logged-in - Facebook Sharing Using Graph API

Upvotes: 0

eggie5
eggie5

Reputation: 1960

Here's the general flow

  1. Register an app at developers.facebook.com
  2. Create page w/ this link to this page: https://www.facebook.com/dialog/oauth? client_id=164837516907837& type=user_agent& scope=email,read_stream,user_videos,friends_videos,user_about_me,offline_access& redirect_uri=http://www.facebook.com/connect/login_success.html
  3. Save the user x's oath token that is returned from step2
  4. Via API call post to user x's wall

Upvotes: 0

Ashwini Dhekane
Ashwini Dhekane

Reputation: 2290

Step 1:

Set up a new application at facebook. Enter details like your website address and domain name. Note down the api key, application id, and application secret. You can set up a new facebook application here. Note: To be able to access facebook developers dashboard you need to be a verified developer, i.e. you should either have your mobile number or credit card verified with it.

Step 2:

Set up an authentication method to check if user is logged into facebook and if facebook session exists ask for basic permissions from user. You can do this easily using PHP SDK:

$fb_sdk_path = FACEBOOK_SDK_PATH;
require_once($fb_sdk_path);

//initialize FB object
$facebook = new Facebook(array(
    'appId'  => FB_APP_ID,
    'secret' => FB_APP_SECRET,
    'cookie' => true,
    'domain' => 'example.com'
));

//try to get session. if this fails then it means user is not logged into facebook
$session = $facebook->getSession();

if (!$session) {
    //get facebook login url
    $url = $facebook->getLoginUrl(array(
        'canvas' => 1,
        'fbconnect' => 0
         )
    );

//put login url script to redirect to facebook login page (if you want to do this)
    echo "<script type='text/javascript'>top.location.href = '$url';</script>";
    exit;
} else {
    //try to get user details from session this will trigger the permissions dialog.
    try {
        $uid = $facebook->getUser();
    } catch (FacebookApiException $e) {
    }
}

Step 3:

Use Facebook Javascript FB.ui method to generate a post form.

<div id="fb-root"></div> <!-- don't forget to include this -->
<script src="http://connect.facebook.net/en_US/all.js"></script><!-- include fb js -->
<script type="text/javascript">
     //initialize facebook
     FB.init({ 
        appId:'YOUR_APP_ID', 
        cookie:true, 
        status:true,
        xfbml:true 
     });

//call this function on click or some other event
function post_to_profile() {
    FB.ui({
    method: 'feed',
    name: 'title of the feed',
    link: 'link on the title',
    caption: 'caption to show below link, probably your domain name',
    description: 'description',
    picture:'picture to show',
    message: 'default message. this can be edited by the user before posting'
    });
}
</script>

This should be enough to get it working.

Upvotes: 11

plasmid87
plasmid87

Reputation: 1471

Taken directly from http://developers.facebook.com/docs/guides/web/

<html>
    <head>
      <title>My Great Website</title>
    </head>
    <body>
      <div id="fb-root"></div>
      <script src="http://connect.facebook.net/en_US/all.js">
      </script>
      <script>
         FB.init({ 
            appId:'YOUR_APP_ID', cookie:true, 
            status:true, xfbml:true 
         });

         FB.ui({ method: 'feed', 
            message: 'Facebook for Websites is super-cool'});
      </script>
     </body>
 </html> 

This will open a prompt to post onto the currently logged in user's wall.

Upvotes: 1

Brent Baisley
Brent Baisley

Reputation: 12721

I would recommend using the Javascript API. While you can certainly do it PHP, I find all the redirects required a poor user experience. Here is how you can get started loading the javascript API. It also has an example on how to post to a wall. http://developers.facebook.com/docs/reference/javascript/

Posting to someones wall (yours or a friends) via javascript uses the FB.ui call. http://developers.facebook.com/docs/reference/javascript/FB.ui/

Upvotes: 1

Jimmy Sawczuk
Jimmy Sawczuk

Reputation: 13614

The getting started guide to the Graph API should help you. Specifically, you'll be dealing with the post object (that page contains a note about publishing, scroll down to the "Publishing" section). You'll also need the publish_stream permission, which you can learn more about here. And since you're doing this in PHP, the official Facebook PHP SDK will be of interest to you as well.

Upvotes: 0

Related Questions