2013-12-14 201 views
0

我想知道當用戶單擊fb ui邀請上的發送請求按鈕時,應該在哪裏放置我的ajax呼叫。目前,我把它放在fb ui語法之後:在facebook用戶發送邀請請求後調用ajax呼叫

function sendRequest(gFriendID, gFriendName) { 
    FB.ui({ 
     method: 'apprequests', 
     title: 'Check out LoyaltyNmore!', 
     to: gFriendID, 
     message: 'Hi ' + gFriendName + ' join me in earning loyalty points!', 
    }, fbCallback); 

    $.ajax({ 
     type: "POST", 
     url: "/home/StoreInvite?userId=" + gFriendID, 
     success: function (data) { 

     }, 
     error: function (err) { 

     } 
    }) 
} 
} 

但是和預期的一樣。當應用程序打開請求UI時,ajax調用會被執行。我希望在用戶點擊發送請求之後立即執行ajax調用,而不是在請求UI顯示時執行。另外點擊取消時。我不想讓我的ajax調用被執行。有任何想法嗎?謝謝

回答

2

你基本上需要把你的ajax調用放到facebook回調函數中......響應將包含關於應用被共享的細節。 '到'數組將爲您提供受邀者的ID。

function sendRequest(gFriendID, gFriendName) { 
    FB.ui({ 
    method: 'apprequests', 
    title: 'Check out LoyaltyNmore!', 
    to: gFriendID, 
    message: 'Hi ' + gFriendName + ' join me in earning loyalty points!', 
    }, function(response) 
    { 
    if(response.to.length) 
    { 
     $.ajax({ 
     type: "POST", 
     url: "/home/StoreInvite?userId=" + gFriendID, 
     success: function (data) { 

     }, 
     error: function (err) { 

     } 
     }); 
    } 
    }); 
} 
+0

非常感謝。我真的很想知道回調是什麼。但是當我檢查瀏覽器控制檯。我看到一些細節正在顯示和播放。 – ljpv14

+0

回調總是用於此目的。回調是指在完成相關任務後調用/執行的內容。讓它適用於FB api或JQuery等。 – user1589754