使用getUser()的Facebook php sdk登录问题

使用getUser()的Facebook php sdk登录问题,php,facebook,facebook-php-sdk,Php,Facebook,Facebook Php Sdk,我有一个使用Facebooks sdk的php脚本,它使用以下代码登录: $user = $facebook->getUser(); if ($user) { $logoutUrl = $facebook->getLogoutUrl(array( 'next' => ($user['baseurl'].'logout.php') )); } else { $loginUrl = $facebook->getLoginUrl(array('scope'=>

我有一个使用Facebooks sdk的php脚本,它使用以下代码登录:

$user = $facebook->getUser();


if ($user) {
$logoutUrl = $facebook->getLogoutUrl(array( 'next' =>      ($user['baseurl'].'logout.php') ));
} else {
$loginUrl = $facebook->getLoginUrl(array('scope'=>'offline_access, manage_pages, publish_stream'));
}

if ($user) {
  echo '<div class="login"><a href="'.$logoutUrl.'">Logout</a></div>';
}
else {
  echo '<div class="login">
    Login using OAuth 2.0 handled by the PHP SDK:
    <a href="'.$loginUrl.'">Login with Facebook</a>
  </div>';
}
$user=$facebook->getUser();
如果($user){
$logoutUrl=$facebook->getLogoutUrl(数组('next'=>($user['baseurl'].'logout.php'));
}否则{
$loginUrl=$facebook->getLoginUrl(数组('scope'=>“脱机访问、管理页面、发布流”);
}
如果($user){
回声';
}
否则{
回声'
使用PHP SDK处理的OAuth 2.0登录:
';
}

脚本每小时刷新一次并发布到我的facebook墙上,总共九个小时。问题是随机getUser()将失败,我将被迫再次手动登录。我不确定是什么原因导致getUser()失败,或者如何修复它?

仅根据您刚才所说的,它的登录会话似乎只是在等待1小时期间超时。一个简单的解决方案是,it在这一小时内每隔一段时间访问它,即使它没有进一步发布任何内容,也只是保持其会话处于活动状态。奇怪的是,它只会偶尔发生,而不是每次都会发生。它是否会连续发生,或者每隔几个小时就发生一次?假设它正在超时会话,它可能只是在超时之前工作了几次,因此它看起来是随机的,但实际上只是超时持续时间的问题。我会四处看看,看看能为你提供些什么。离线访问和发布流的权限不存在。您使用的是刚才提到的SDKAs WizKid的旧版本,这些版本似乎已经被新版本所弃用。从我所读的内容来看,他们现在似乎使用了一个代币系统,您需要利用它来进一步扩展代币。希望这能帮你找到正确的方向。希望能有帮助。我会一直帮你找的。如果成功了,请告诉我。