0

我有一个 facebook 应用程序,当前打开沙盒模式,当他们没有应用程序或他们没有登录时,我的应用程序将自动踢出安装应用程序

我的应用程序也有一个 btn 来投票,这将是一个 ajax 功能,当人们没有安装应用程序/没有登录时,ajax 将返回消息,然后调用 fb.login() 要求人们在弹出窗口中登录

我正在测试一个案例,假设我安装了应用程序,

  1. 我转到有 ajax 按钮的页面

  2. 然后我在另一个浏览器选项卡上打开我的帐户页面,然后删除该应用程序

  3. 我将浏览器选项卡交换到页面

  4. 我单击 btn,ajax 返回未安装消息,它调用 fb.login()

  5. 它会弹出一个错误弹出窗口,我检查弹出 url,它的段包含一个 accessToken

  6. 然后我再次单击 btn,ajax 返回未安装消息并调用 fb.login()

  7. 正常弹出登录框

不同的是成功登录的 url 不会在 url 段中包含 accessToken

谁能告诉我如何处理这种情况,如果我希望人们在删除应用程序并且没有刷新页面后在弹出框中登录

4

1 回答 1

0

一般来说,在你用 Javascript 做任何事情之前,你可以通过调用 Facebook 服务器的“ getLoginStatus ”来检查他们是否仍然登录。然后在呼叫响应后处理您的操作。

您还可以使用位于 HTML 页面中的事件订阅侦听器。如果用户注销,那么您可以强制刷新

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();
于 2012-09-18T06:21:36.013 回答