【发布时间】:2015-09-02 15:22:22
【问题描述】:
我正在使用fb documentation 建议的登录流程;
HTML
<a href="#">Click me to login!</a>
JavaScript
//USER WANTS TO LOGIN
$("a").click(function() {
FB.login( checkLoginState(), { scope: 'email,user_birthday,user_likes' });
})
//CALLBACK LISTENER OF WHAT THE USER CHOOSE
function checkLoginState(mode) {
FB.getLoginStatus(function(response) {
statusChangeCallback(response);
});
}
//WHAT TO DO DEPENDING ON WHAT THE USER CHOOSE
function statusChangeCallback(response) {
if (response.status === 'connected') {
//LIFE IS GOOD
alert("Thank you, know my php script will handle the rest");
} else if(response.status == 'not_authorized') {
//THE USER DOES NOT AUTHORIZE
alert("Im sorry, you have to authorize the app in order to proceed");
}
}
问题是,当我调用 FB.login 时,弹出窗口会打开,因为它应该要求用户登录或授权我的应用程序,但是,只要弹出窗口打开 statusChangeCallback 被调用 给我一个状态。我不明白为什么 SDK 一打开就给我一个回调,用户需要“说点什么”(登录,或授权或不授权应用程序)才能触发响应。您会看到,在此流程中,只要用户单击登录按钮,就会弹出警告对不起,您必须授权应用程序才能继续。此外,最糟糕的是,当用户在弹出窗口中引入其凭据并授权应用程序时,没有回调......
我错过了什么?
【问题讨论】:
标签: javascript facebook facebook-graph-api