Facebook PHP SDK在首次刷新时不会检测用户更改

时间:2013-07-03 15:41:56

标签: php facebook facebook-php-sdk facebook-login

我有一个与我的应用程序上的Facebook登录相关联的小错误。

一旦用户通过原生Facebook网站更改其帐户,我正在刷新页面(使用facebook.php类)并调用$ facebook-> getUser(),它仍将返回我的用户ID以前的用户,只会在第二次刷新时更新。

我已经检查了我们要求的权限以及我们过去请求的权限,而且似乎没有“离线访问”,所以我已将其从可能原因列表中删除。 / p>

这从安全性和使用便利性的原因来看都很重要。 我试过调用destroySession,我也试过通过执行以下操作手动杀死cookie:

setcookie('fbsr_' . FACEBOOK_APP_ID, '', time()-3600, '/', '.'.$_SERVER['SERVER_NAME']);

这种奇怪的行为可能是什么原因?有人可以帮助我吗?

提前致谢, 奥列格。

页面的完整代码:

<?php
header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
require_once 'src/facebook.php';
require_once 'config/configFB.php';

// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
  'appId'  => FACEBOOK_APP_ID,
  'secret' => FACEBOOK_SECRET_KEY,
));


// Get User ID
$fbUserId = $facebook->getUser();
echo $fbUserId;//testing the bug
exit(1);
?>

重要提示:我为测试此场景而使用的所有用户都添加了我的应用程序,所以实际上我应该可以访问他们的数据。

1 个答案:

答案 0 :(得分:1)

您可以将标题重定向到同一页面,以“行动”作为第二个重定向。更多只是一个乐队助手而不是一个合适的解决方案。虽然我错了,如果我登录到不同的Facebook帐户,我将不得不重新授权您的应用程序使用该帐户,因为不会设置权限。