2011-08-19 67 views
0

下面的代碼應該顯示一個網站請求對話框:問題顯示Facebook的請求對話框

<script> 
    function sendFBRequest() 
    { 
     // assume we are already logged in 
     FB.init({appId: '111111111111111', xfbml: true, cookie: true}); 

     FB.ui({ 
      method: 'apprequest', // this needs to be plural! 
      message: 'Help me connect to Jane Doe', 
      data: 'game47', 
      title: 'Game Request' 
      }, 
      function (response) 
      { 
      if (response && response.request_ids) 
      { 
       var requests = response.request_ids.join(','); 
       alert('requests = ' + requests); 
      } 
      else 
      { 
       alert('canceled'); 
      } 
      }); 
} 
</script> 

<div class="awesome green" onClick="sendFBRequest();">Facebook Request</div> 

當我點擊(真棒綠色)按鈕,顯示基本對話框框架,並在對話框裝載動畫(閃爍的垂直灰色條)開始。但就是這樣,不會顯示任何信息。我錯過了什麼?

編輯: 我所使用的方法 'apprequest' 代替'apprequests'

回答

2

這對我的作品

FB.ui(
{method: 'apprequests', 
message: 'my message', 
data: 'some data', 
title:'Mytitle'}, 
function(response) { 
if (response) { 

    window.location.reload(); 
} else { 

    window.location.reload(); 
} 
} 

); 
0
FB.init({appId: '111111111111111', xfbml: true, cookie: true}); 

不假定用戶已經登錄。

嘗試使FB.init頁面加載時。並檢查FB API願與FB.getSession [1]或FB.getLoginStatus [2]

[1] http://developers.facebook.com/docs/reference/javascript/FB.getSession/

[2] http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

+0

赫姆,如果我用發送對話框代替(方法:發送)則一切正常(但我沒有得到響應信息)。我會檢查出 –

+0

response.status ='connected' –

0

你看到任何JavaScript更好您的瀏覽器錯誤控制檯錯誤? Facebook實現的東西存在一個錯誤(在我看來)。如果頁面上有一個Like按鈕,它會調用一個FB.init函數,該函數會破壞您的初始化。然後你會得到一個javascript錯誤,FB.init在嘗試調用其他Facebook功能時未被調用。

我發現我必須將xfbml標誌設置爲false,並使用FB.XFBML.parse來呈現FBML頁面的各個部分。無論如何哪個效率更高。