【发布时间】:2012-10-09 06:38:45
【问题描述】:
当用户单击我网站上的 Facebook 登录按钮时,我正在使用 JS SDK 显示请求对话框。现在我想在用户发送邀请或取消请求对话框后重定向用户,以便我可以继续在站点中为他或她签名。
button = document.getElementById('fbc-login-button');
button.onclick = function() {
FB.getLoginStatus(function(response) {
if (response.authResponse) {
sendRequestViaMultiFriendSelector(response.authResponse.accessToken);
}
else {
FB.login(function(response) {
if (response.authResponse) {
sendRequestViaMultiFriendSelector(response.authResponse.accessToken);
}}, {scope: 'email'});
}
});
};
function sendUserToLoginProcess(accessToken){
var fb_signin_url = '<?php echo CustomLocal_Resource_Url_Process::userSignin() ?>?command=<?php echo CustomLocal_Logic_Customer_User::COMMAND_FB_SIGNIN ?>&url_redirect=<?php echo Custom_Resource_Url_Customer::main(); ?>&url_redirect_fail=<?php echo Custom_Resource_Url_Customer::signin(); ?>';
this.location = fb_signin_url + '&token=' + accessToken;
};
function sendRequestViaMultiFriendSelector(accessToken) {
FB.ui({method: 'apprequests',
message: 'My Great Request'
}, sendUserToLoginProcess(accessToken));
}
【问题讨论】:
-
而你的实际问题是……?
-
哈哈对不起,正如我所说的,我想重定向。所以在代码中有一个回调 sendUserToLoginProcess 函数。但是,当请求对话框加载到页面上时,这个会同时重定向。因此,用户没有机会邀请他/她的朋友,因为他/她正在被重定向。我希望在用户完成请求对话框或按对话框上的取消后进行重定向。我该怎么办?
-
你上面代码的问题是/曾经,你没有使用
sendUserToLoginProcess作为回调函数,而是直接执行。