我是Facebook应用程序开发的新手,也是JavaScript和PHP编程的新手。
我目前正在开发一个Facebook应用程序但目前仍处于“请求对话框”窗口。
当出现“请求对话框”时,我选择了我想要的朋友,然后单击“发送请求”,执行requestCallback(响应),并按预期通知获取请求的朋友。但是,如果单击“取消”或蓝色关闭按钮,则还会执行requestCallback(响应),但未向选定的朋友通知该请求。
这是我的代码:
function requestCallback(response)
{
//console.log(response);
location.href='step2.php';
}
因此,无论是单击“取消”还是关闭按钮,上面的脚本仍然执行(转到我指定的页面step2.php。)
我想要的是当用户点击取消按钮或关闭模态窗口按钮时,页面停留在同一页面。
任何人都知道如何解决这个问题?
谢谢!
答案 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”。默认情况下它处于关闭状态,但如果您将其激活,则向用户发送请求时响应对象的结构将发生变化。所以你必须在回调中更新你的条件!