我有一个Facebook应用程序,当前打开沙盒模式 当他们没有应用程序或他们没有登录时,我的应用程序将自动启动安装应用程序
我的应用程序也有一个btn投票的东西,它将是一个ajax函数,当人们安装app / havent登录时,ajax会返回消息,然后调用fb.login()来要求人们登录弹出
我正在测试一个案例,假设我安装了该应用程序,
我转到带有ajax按钮的页面
然后我在另一个浏览器标签页上打开我的帐户页面,然后删除该应用
我将浏览器标签交换到页面
我点击btn,ajax返回未安装的消息,并调用fb.login()
它会弹出一个错误弹出窗口,我检查弹出网址,它的段包含一个accessToken
然后我再次点击btn,ajax返回未安装的消息,并调用fb.login()
它通常会弹出登录框
区别在于成功登录网址将不包含网址段中的accessToken
任何人都可以告诉我如何处理这种情况,如果我希望人们在删除应用程序并且没有刷新页面后在弹出框中登录
答案 0 :(得分:0)
通常,在使用Javascript执行任何操作之前,您可以通过调用Facebook服务器“getLoginStatus”来检查它们是否仍然登录。然后在呼叫响应后处理您的操作。
您还可以使用HTML页面中的event subscribe侦听器。如果用户注销,则可以强制刷新
FB.Event.subscribe('auth.authResponseChange', function(response) {
alert('The status of the session is: ' + response.status);
});
如果你回调PHP,那么每个PHP页面都应该启动facebook对象(检查Facebook SDK)并检查用户是否已登录。
require 'facebook-php-sdk/src/facebook.php';
$facebook = new Facebook(array(
'appId' => 'YOUR_APP_ID',
'secret' => 'YOUR_APP_SECRET',
));
// Get User ID
$user = $facebook->getUser();