2012-03-16 57 views
4

當我使用發送對話框使用Facebook JS SDK FB.ui調用時,回調不會觸發。Facebook JS SDK:FB.ui回調不起作用 - 需要工作示例代碼

FB.ui(
     { 
      method: 'send', 
      to: ****,   // fbId 
      redirect_uri: *****, // public URL in my app domain 
      link: *****   // public URL 
     }, 
     function(response) { 
      alert('callback was called!'); 
      if (response != null) { 
       console.log('Request was passed along!'); 
       location.href= ***; // just in case redirect_uri doesn't work 
       return true; 
      } 
      else { 
       console.log('Not passed along. User clicked cancel'); 
      } 
     } 

);

預期行爲:應該顯示警報。應該記錄控制檯消息。用戶應該被髮送到redirect_uri。

實際行爲:這三件事情都沒有發生。 「發送」對話框打開並且to:字段已正確預填。當我點擊發送時,它被正確發送。但我需要觸發回調,並且需要將用戶發送到redirect_uri。

+0

嘿,有什麼機會我們可以得到一個鏈接?這聽起來很愚蠢,但是您確定控制檯在您使用的瀏覽器中處於活動狀態嗎? 如果你CONSOLE.LOG(響應)會發生什麼? – Claudiu 2012-03-20 12:47:15

+0

您確定郵件發送正確嗎? – 2012-03-21 05:05:03

+0

控制檯處於活動狀態,消息正確發送。 – JMan 2012-03-22 16:26:54

回答

1

每個FB.UI都有一個回調函數,它也適用於發送對話框。

有關FB.UI的一般語法,請參見此document

但問題在於其他FB.UI方法,SEND方法沒有返回值。

作爲每Facebook的文檔,

如果發送消息是成功的,則用戶將被重定向到REDIRECT_URI。否則,會顯示錯誤。與Like 按鈕不同,本身沒有返回值。

因此,如果消息發送成功,你沒有一個REDIRECT_URI那麼回調將有什麼作爲回報價值,並在失敗的消息發送,否則發送錯誤。

要確認回調正在使用下面的代碼,

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', 
      }, 
      function(response){ 
      alert(response); 
      if(response != null){ 
      alert('user clicked send'); 
      }else{ 
      alert('user clicked cancel'); 
      } 
      }); 

當您單擊發送和發送成功,它會提醒一個空字符串,當u點擊取消它會提醒「空」。

+0

我用你的代碼,但它仍然不起作用。沒有警報彈出。我還包括一個redirect_uri,但FB不會在那裏重定向。我的網站處於沙箱模式,但這不應該是一個問題。其他方案? – JMan 2012-03-18 01:29:20

+0

發送對話框需要鏈接成爲世界可訪問的活動url。出於測試目的使用任何公開可用的域。 – Vijay 2012-03-18 17:19:12

+0

是的,該鏈接是公開可用的,並位於FB開發應用程序中指定的域中。但用戶仍未被髮送到redirect_uri。其他方案? – JMan 2012-03-19 02:37:57

0

您是否在其他瀏覽器中驗證過?檢查您的瀏覽器設置一次。 您是否安裝了類似「Facebook Disconnect」的擴展名?

2

取出redirect_uri項目和回調將被解僱。

我在幾分鐘後面臨同樣的問題,並意識到刪除redirect_uri解決了它。

+0

這對我有用。 – 2012-11-21 16:25:10