Facebook – Using Facebook API to invite friends

facebookfacebook-friendsfacebook-graph-apifacebook-invitefacebook-javascript-sdk

I want an "Invite Friends" link on my website where you click it and you get a Facebook dialog that asks you to choose which of your friends you'd like to invite. Those friends then either get an application request, Facebook email or at least a wall post inviting them to join my website.

I'm a bit confused over what is the proper way to do this. It seems the only non-deprecated way now is through the Requests Dialog. So I call the FB.ui Javascript method like the example they give:

FB.ui({
    method: 'apprequests', 
    message: 'You should learn more about this awesome game.',
    data: 'tracking information for the user'
});

Then the invitees will get application requests when they login to Facebook. When they "accept" that request, they'll be directed to my Facebook canvas application where I read the initial request id passed from Facebook so I know what this is about and then I guess I can redirect the user to my website? I don't like this as I now have to learn how to build a canvas application, but is this the proper way to have an invite friends through Facebook feature?

Ideally the invite friends button brings up the Facebook friend selector (or login if the user isn't logged in to FB yet) and then posts on those friends' walls. That message posted would have a simple link back to my website. Is this possible?

Best Answer

I had same problem. Though it is very late for answering question, it will help somebody. That's why answering this question.

Call this Javascript function when want to send invitations.

function sendRequestViaMultiFriendSelector() {
    FB.ui({
        method: 'apprequests',
        message: "This message is displayed in invitation"
    },send_wall_invitation);

}

function send_wall_invitation(response) {
   // alert(response.to);
    var send_invitation_url=base_url+'send_invitation';
    jQuery.ajax({
        url:send_invitation_url,
        data:{
            to:response.to
            },
        dataType:"json",
        type: 'POST',
        success: function(data){
//            alert("");
        }

    })
}

Sending array of friends invited by ajax and then send post for each friend.

I can post on the user's friends walls via the PHP API. Try this :

$facebook->api('/[FRIEND_ID]/feed', 'post', array(
          'message' => 'test message',
          'link' => 'http://google.com',
          'name' => 'test name',
          'caption' => 'test caption',
          'description' => 'test long description',
      ));

Posting on friends wall is not possible now by Feb 2013. How to post on a friend's Timeline after the February 2013 migration takes effect?

$facebook->api('/[Loggedin_user_id]/feed', 'post', array(
              'message' => 'test message',
              'link' => 'http://google.com',
              'name' => 'test name',
              'caption' => 'test caption',
              'description' => 'test long description',
          ));

But user can still post on his wall and tag friends in post or image.

See :

  1. FB upload photo from application and post it to user's wall
  2. Tags friends photo