使用Facebook API邀请朋友?

时间:2011-08-15 17:37:02

标签: facebook facebook-graph-api facebook-javascript-sdk facebook-friends facebook-invite

我想在我的网站上点击一个“邀请朋友”链接,然后你会看到一个Facebook对话框,要求你选择你想邀请哪些朋友。然后这些朋友要么收到申请请求,要么发送Facebook电子邮件,要么至少收到一封墙信息邀请他们加入我的网站。

我对这样做的正确方法感到困惑。现在似乎唯一不被弃用的方式是通过Requests Dialog。所以我将FB.ui Javascript方法称为他们提供的示例:

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

然后被邀请者在登录Facebook时会收到申请请求。当他们“接受”该请求时,他们将被引导到我的Facebook画布应用程序,在那里我读取了从Facebook传递的初始请求ID,所以我知道这是什么,然后我想我可以将用户重定向到我的网站?我不喜欢这个,因为我现在必须学习如何构建一个画布应用程序,但这是通过Facebook功能邀请朋友的正确方法吗?

理想情况下,邀请朋友按钮会调出Facebook好友选择器(如果用户尚未登录FB,则登录),然后在这些朋友的墙上发布。发布的消息将有一个简单的链接回到我的网站。这可能吗?

4 个答案:

答案 0 :(得分:21)

我有同样的问题。虽然回答问题已经很晚了,但它会对某些人有所帮助。这就是回答这个问题的原因。

想要发送邀请时调用此Javascript函数。

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("");
        }

    })
}

发送由ajax邀请的朋友阵列,然后为每位朋友发送帖子。

<击> 我可以通过PHP API在用户的朋友墙上发布。  试试这个:

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

<击>

到2013年2月,无法在朋友墙上发帖。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',
          ));

但是,用户仍然可以在他的墙上发帖并在帖子或图片中标记朋友。

见:

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

答案 1 :(得分:4)

我想新推出的“Send”按钮(以及对等的对话框)就是您所需要的:

<html xmlns:fb="http://www.facebook.com/2008/fbml">
  <body>
    <script src="http://connect.facebook.net/en_US/all.js"></script>
    <div id="fb-root"></div>
    <script>
      // assume we are already logged in
      FB.init({appId: '123050457758183', xfbml: true, cookie: true});

      FB.ui({
          method: 'send',
          name: 'People Argue Just to Win',
          link: 'http://www.nytimes.com/2011/06/15/arts/people-argue-just-to-win-scholars-assert.html',
          });
     </script>
  </body>
</html>

答案 2 :(得分:2)

在HTML文件中使用此选项。它对我很有用。


<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:fb="https://www.facebook.com/2008/fbml">

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>


<p>
<input type="button"
  onclick="sendRequestViaMultiFriendSelector(); return false;"
  value="Send Request To Your Facebook Friends"
/>
</p>

<script>
  FB.init({
    appId  : 'APP_ID',
    frictionlessRequests: true
  });

  function sendRequestToRecipients() {
    var user_ids = document.getElementsByName("user_ids")[0].value;
    FB.ui({method: 'apprequests',
      message: 'Awesome Application try it once',
      to: user_ids
    }, requestCallback);
  }

  function sendRequestViaMultiFriendSelector() {
    FB.ui({method: 'apprequests',
      message: 'Awesome application try it once'
    }, requestCallback);
  }

  function requestCallback(response) {
    // Handle callback here
  }
</script>

答案 3 :(得分:0)

<div id="fb-root"></div>
   <script src="http://connect.facebook.net/en_US/all.js">
   </script>
   <script>
     FB.init({ 
       appId:'APP ID', cookie:true, 
       status:true, xfbml:true 
     });



function FacebookInviteFriends()
{
FB.ui({ method: 'apprequests', 
   message: 'VISIT THIS WEB SITE'});
}
   </script>

<a href='#' onClick="FacebookInviteFriends();"> INVITE YOUR FACEBOOK FRIENDS</a>