2012-02-27 55 views
1

我遇到了很多問題,但沒有給出任何具體的答案向Facebook上的用戶發送通知以獲取應用程序請求?

我發送邀請Facebook的朋友說a,b,c和應該發生的是一個通知應顯示爲應用程序請求

我已經看到這在PININTEREST的情況下做的相同,但我試圖在asp.net中實現這一點。我發現這個demo這是非常接近我想要實現

我到目前爲止的代碼是:

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

    <body> 
    <div id="fb-root"></div> 
    <script src="http://connect.facebook.net/en_US/all.js"></script> 
    <p> 
     <input type="button" 
     onclick="sendRequestToRecipients(); return false;" 
     value="Send Request to Users Directly" 
     /> 
     <input type="text" value="User ID" name="user_ids" /> 
     </p> 
    <p> 
    <input type="button" 
     onclick="sendRequestViaMultiFriendSelector(); return false;" 
     value="Send Request to Many Users with MFS" 
    /> 
    </p> 

    <script> 
     FB.init({ 
     appId : 'XXXXX', 
     }); 

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

     function sendRequestViaMultiFriendSelector() { 
     FB.ui({method: 'apprequests', 
      message: 'My Great Request' 
     }, requestCallback); 
     } 

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

編輯:enter image description here

當我發送請求的用戶沒有得到它...未顯示錯誤或者

+0

你的代碼有什麼問題?您沒有列出任何錯誤或問題。你在'requestCallback'函數的'response'參數中得到了什麼? – Lix 2012-02-27 15:24:43

+0

我對請求對話很新,我需要在requestCallback函數中指定什麼? – vini 2012-02-27 15:27:23

+0

到目前爲止 - 我問你是如何意識到有一個問題 - 你沒有指定這個。用戶沒有收到請求嗎?你是否收到一些JavaScript錯誤? – Lix 2012-02-27 15:28:10

回答

2

這裏有兩件事情,可能會導致你的請求不經過 -

  • 缺失或不正確的畫布URL
  • 應用程序在沙盒模式

將請求發送到應用程序用戶必須在應用程序的設置中指定 a canvas URL。當用戶處理請求(接受它)時,他/她被重定向到應用程序,特別是畫布URL。通過不指定畫布網址,您的請求是Facebook的deemed invalid,因爲沒有將用戶重定向到哪裏。畫布網址不能爲apps.facebook.com/namespace,因爲您的應用程序不在Facebook的域名上。您必須將網址設置爲您的域名爲。您重定向到的頁面應該在用戶再次重定向回您的應用程序:

if(!strpos($_SERVER['HTTP_REFERER'],"apps.facebook.com")) { 
    header("location: "._fb_app_path); 
    exit(); 
} 

沙盒模式的應用程序時,被邀請的用戶在應用程序設置相應的「角色」組未列出。沙盒模式下的應用程序只能訪問該應用程序的開發人員,管理員或測試人員。

+0

我添加了它保持的畫布網址,當我運行我的代碼時檢查編輯 – vini 2012-02-27 16:58:43

+0

'http://apps.facebook.com/iamamazing/'這是我的畫布網址 – vini 2012-02-27 17:04:55

+0

@vini - 我更新了我的文章以包含更多信息.. – Lix 2012-02-27 17:22:48

1

我認爲正確的方法(至少我們用什麼)是:

function invoke_app_request(){ 
    var receiverUserIds = FB.ui({ 
     method: 'apprequests', 
     message: 'MESSAGE', 
     data: '', 
     max_recipients: AN_INT //this is optional 
    }, 
    function(response) { 
     //whatever you do here 
    } 
); 
} 

我在某處閱讀(不要拿它100%),在邀請上顯示通知是基於Facebook算法,並沒有顯示在所有的應用程序。它必須對應用程序的活動和歷史做些事情。

+1

發送的任何邀請都會創建一個紅色通知氣泡,但應用生成的請求除外。 – Lix 2012-02-27 15:34:24

相關問題