Php Fackbook应用程序句柄反验证

Php Fackbook应用程序句柄反验证,php,facebook,Php,Facebook,我有一个facebook应用程序,它当前打开沙盒模式 我的应用程序将自动踢出ppl安装应用程序时,他们没有应用程序或他们没有登录 我的应用程序也有一个btn来投票,它将是一个ajax功能,当人们没有安装应用程序/没有登录时,ajax将返回消息,然后调用fb.login()让人们在弹出窗口中登录 我在测试一个案例,假设我安装了这个应用 我转到有ajax按钮的页面 然后,我在另一个浏览器选项卡上打开我的帐户页,然后删除该应用程序 我将浏览器选项卡切换到页面 我单击btn,ajax返回not inst

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

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

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

  • 我转到有ajax按钮的页面

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

  • 我将浏览器选项卡切换到页面

  • 我单击btn,ajax返回not installed消息并调用fb.login()

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

  • 然后我再次单击btn,ajax返回not installed消息并调用fb.login()

  • 它通常会弹出登录框

  • 区别在于成功登录url在url段中不包含accessToken


    有人能告诉我如何处理这种情况吗?如果我真的希望人们在删除应用程序并且没有刷新页面后登录到弹出框中,通常,在使用Javascript执行任何操作之前,您可以通过调用Facebook服务器来检查他们是否仍然登录。然后在该呼叫响应后处理您的操作

    您还可以使用HTML页面中的侦听器。如果用户注销,则可以强制刷新

    FB.Event.subscribe('auth.authResponseChange', function(response) {
        alert('The status of the session is: ' + response.status);
    });
    
    如果调用PHP,那么每个PHP页面都应该启动facebook对象(检查),并检查用户是否登录

    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();
    

    Thx的评论,但我的情况是取消安装应用程序,而不是注销