25

我想在我的網站上點擊一個「邀請朋友」鏈接,然後您會看到一個Facebook對話框,要求您選擇您想邀請的朋友中的哪一位。然後,這些朋友要麼收到應用程序請求,要麼發送Facebook電子郵件,要麼至少收到壁帖,邀請他們加入我的網站。使用Facebook API邀請朋友?

我有點困惑什麼是正確的方式來做到這一點。看來現在唯一不被棄用的方式是通過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

我猜最新推出的「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

我看到了這一點,但它似乎不適合的 「邀請好友」 類型的功能。你必須輸入你想邀請的朋友的名字..我需要它很容易邀請你的朋友選擇全部和點擊選擇界面。我想否則這是好的,只是朋友的選擇過程。 –

+0

@at,閱讀我鏈接的文檔,仍然可以使用短語「邀請朋友」。你需要鼓勵用戶的朋友來到你的網站(訪問一個URL),這是一個用戶對用戶的交流。 – ifaour

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

    }) 
} 

發送的朋友阿賈克斯邀請數組,然後發送POST爲每個朋友。

我可以通過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
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> 
+2

你可能想在這個回覆中增加一些散文 – opsidao

+1

......還有一些格式化的問題;) – superjos

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> 
+0

以上爲:user_ids是從我的HTML生成的還是來自FB對話框? – sjd

+0

這是FB對話框.. –

+0

這給了我一個錯誤:'參數app_id是必需的' –