2013-12-14 103 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