Facebook PHP SDK赢得';t在第一次刷新时检测到用户更改


Facebook PHP SDK won't detect user change on first refresh

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

一旦用户通过本地Facebook网站更改了他的帐户,而我正在刷新页面(使用Facebook.php类)并调用$Facebook->getUser(),它仍然会向我返回上一个用户的用户ID,并且只会在第二次刷新时更新。

我已经检查了我们正在请求的权限和过去请求的权限,这里似乎没有"脱机访问",所以我已经将其从可能的原因列表中删除。

出于安全和使用方便的原因,这一点都很重要。我试过调用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);
?>

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

您只需将头重定向到同一页面,即可"充当"第二个重定向。更多的只是一个乐队助手,而不是一个合适的解决方案。尽管除非我错了,如果我登录到另一个facebook帐户,我将不得不重新授权你的应用程序使用该帐户,因为权限不会设置。