2011-05-04 354 views
0

我發展具有以下需求的網站發送的個性化URL Facebook的朋友:從外部網站

  • 用戶可以邀請他們的Facebook朋友訪問該網站
  • 邀請朋友收到一個個性化的網址點背的網站(無論是消息,通知,請求......沒關係)

示例流程:
1.約翰訪問http://www.mysite.com
2.約翰點擊Facebook連接按鈕並用他的Facebook憑證登錄
3.約翰點擊「邀請朋友」按鈕。朋友選擇器對話框出現
4. John選擇瑪麗並提交該邀請/請求/消息
瑪麗接收像一個鏈接:http://www.mysite.com?name=Mary
6.瑪麗點擊鏈接來自Facebook內,並且被重定向到上述
的網址 7.我的網站顯示:「Hello Mary!」,從URL參數中取名

我已經設法完成了步驟1-4。
我在問第5步。這可能嗎?我知道我可以獲得在多朋友選擇器中選擇的人員的Facebook ID,並且我可以使FBQL查詢檢索所選人員的姓名,但是如何自定義發送的URL?

乾杯,

納喬

回答

0

當您網站上的用戶提到的土地,您可能需要知道他們的Facebook用戶ID或你打算給他們的信息。使用用戶ID會更容易和更具可擴展性,並且您需要讓用戶安裝您的應用程序,然後才能識別它們,查看其名稱並說出「Hello Mary!」。

我在這裏做的是讓引薦的用戶分享一個爲他定製的鏈接。所以如果我是A,並且我正在與朋友分享,我的鏈接看起來像http://www.somedomain.com/?ref=A。我分享這個,我的朋友B點擊鏈接。當B進入安裝屏幕時,他會安裝,現在我們知道B的名字,並且由於我們有ref參數,我們知道他點擊了我的鏈接。 (這就是Groupon和Dropbox的手柄推介鏈接。)

,更明確地回答你的問題,沒有,邀請鏈接需要爲您發送使用多的朋友選擇每個邀請一樣的,所以per-受邀者鏈接不是一個選項。

2

那麼,如果用戶將發送大量朋友的邀請,那麼這些邀請將不會是「被邀請者唯一」(正如@Jimmy所述)。但是你仍然可以從請求本身捕獲唯一的「朋友ID」和(我想)名稱!

你需要做的是以下幾點:

  1. 當朋友點擊邀請,他/她將被重定向到畫布頁(或書籤頁,如果它已經坐)。
  2. 隨着重定向,您會收到邀請號碼(請求ID),您可以在此閱讀此請求並從中提取「收件人」字段,然後將該朋友重定向到您的網站。

喜歡的東西:

<?php 
if(isset($_REQUEST['request_ids'])) { 
    // Requesting an application token 
    $APPLICATION_ID = "APP_D"; 
    $APPLICATION_SECRET = "APP_SECRET"; 

    $token_url = "https://graph.facebook.com/oauth/access_token?" . 
        "client_id=" . $APPLICATION_ID . 
        "&client_secret=" . $APPLICATION_SECRET . 
        "&grant_type=client_credentials"; 
    $app_token = file_get_contents($token_url); 

    // You may have more than one request, so it's better to loop 
    $requests = explode(',',$_REQUEST['request_ids']); 
    foreach($requests as $request_id) { 
     // Get the request details using Graph API 
     $request_content = json_decode(file_get_contents("https://graph.facebook.com/$request_id?$app_token"), TRUE); 

     // An example of how to get info from the previous call 
     $to_name = $request_content['to']['name']; 

     // When all is done, delete the requests because Facebook will not do it for you! 
     $deleted = file_get_contents("https://graph.facebook.com/$request_id?$app_token&method=delete"); // Should return true on success 

     echo "<script>top.location.href='http://www.mysite.com?name=" . urlencode($to_name) . "'</script>"; 
    } 
} 
?> 

詳細閱讀以下內容: