我想知道当用户单击fb ui邀请上的“发送请求”按钮时,应该将我的Ajax呼叫放在哪里。目前,我把它放在fb ui语法之后:

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调用被执行。有任何想法吗?谢谢

最佳答案

基本上,您需要将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) {

        }
      });
    }
  });
}

10-04 21:25
查看更多