2013-07-03 32 views
1

我的应用程序中有一个与Facebook登录相关的小错误。Facebook PHP SDK在第一次刷新时不会检测到用户更改

一旦用户通过本地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); 
?> 

重要提示:所有我使用,以测试该业务情景的用户添加我的应用程序,所以其实,我应该有自己的访问数据。

回答

1

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

+0

是的,您将不得不授权我的应用程序,除非您已经做得很好,这里就是这种情况。 –

+0

因此,只需确认一下,当您在原生Facebook网站上更改帐户时,是否必须授权应用程序? –

+0

如果您已经授权该应用程序,您可以使用$ facebook-> getUser() 至少这是应该的方式。 –

相关问题