单击“取消”或“关闭”按钮时,“请求对话框”requestCallback

时间:2011-10-14 09:53:41

标签: facebook request friend invite

我是Facebook应用程序开发的新手,也是JavaScript和PHP编程的新手。

我目前正在开发一个Facebook应用程序但目前仍处于“请求对话框”窗口。

当出现“请求对话框”时,我选择了我想要的朋友,然后单击“发送请求”,执行requestCallback(响应),并按预期通知获取请求的朋友。但是,如果单击“取消”或蓝色关闭按钮,则还会执行requestCallback(响应),但未向选定的朋友通知该请求。

这是我的代码:

function requestCallback(response)
{
    //console.log(response);
    location.href='step2.php';
}

因此,无论是单击“取消”还是关闭按钮,上面的脚本仍然执行(转到我指定的页面step2.php。)

我想要的是当用户点击取消按钮或关闭模态窗口按钮时,页面停留在同一页面。

任何人都知道如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:5)

您可以查看Facebook 响应对象中的内容,因为如果已发送请求,它将不相同!

类似的东西:

function requestCallback(response)
{
    if(response && response.request_ids) {
         // Here, requests have been sent, facebook gives you the ids of all requests
         //console.log(response);
         location.href='step2.php';
    } else {
         // No requests sent, you can do what you want (like...nothing, and stay on the page).
    }
}

或者如果您使用新结构(请求2.0效率):

function requestCallback(response)
{
    if(response && response.request) {
         // Here, requests have been sent, facebook gives you the request and the array of recipients
         //console.log(response);
         location.href='step2.php';
    } else {
         // No requests sent, you can do what you want (like...nothing, and stay on the page).
    }
}

查看响应对象的结构以了解您的情况。即使您点击关闭,也会触发回调,以便您可以注意用户何时退出对话框。由您来验证他是否发送了请求,并按您的要求行事! :)

此外,重要的事情: Facebook几周前更新了他们的请求系统,在您的应用程序设置中提供“请求2.0”。默认情况下它处于关闭状态,但如果您将其激活,则向用户发送请求时响应对象的结构将发生变化。所以你必须在回调中更新你的条件!

这里解释了一切: http://developers.facebook.com/blog/post/569/