Facebook PHP SDK访问令牌过期时重定向到索引页

Facebook PHP SDK访问令牌过期时重定向到索引页,facebook,oauth-2.0,facebook-php-sdk,fatal-error,Facebook,Oauth 2.0,Facebook Php Sdk,Fatal Error,我在一个使用Facebook PHP SDK的网站上工作。这是伟大的工作,2小时后,每当我试图进入网站上的一般网页之一,我得到 Fatal error: Uncaught OAuthException: An active access token must be used to query information about the current user. 如果我回到索引页面,我会得到一个新的访问令牌,一切都会正常工作……持续2小时 当访问令牌过期时,我可以在网页上放置哪些代码以重定向

我在一个使用Facebook PHP SDK的网站上工作。这是伟大的工作,2小时后,每当我试图进入网站上的一般网页之一,我得到

 Fatal error: Uncaught OAuthException: An active access token must be used to query information about the current user.
如果我回到索引页面,我会得到一个新的访问令牌,一切都会正常工作……持续2小时

当访问令牌过期时,我可以在网页上放置哪些代码以重定向到索引页


感谢您的帮助。

您可以在代码中添加一个
try/catch

将每个Facebook API调用放在这样的块中,如果发生异常,您可以通过
标题('Location:')将用户重定向到正确的资源

试试看{
#FBAPI调用
} 
捕获(OAutheException e){
标题('位置:');
}

有一个类似这样的文件,并将其包含在您的网页中

$facebook = new Facebook(array(
  'appId'  => "app id",
  'secret' => "app secret",
));

$user = $facebook->getUser();
$loginUrl = $facebook->getLoginUrl();

if ($user) {
  try {
    $me = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);   
  }
}
else {
    echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
}
$facebook=新的facebook(数组)(
“应用程序id”=>“应用程序id”,
“机密”=>“应用程序机密”,
));
$user=$facebook->getUser();
$loginUrl=$facebook->getLoginUrl();
如果($user){
试一试{
$me=$facebook->api('/me');
}捕获(FacebookApiException$e){
错误日志($e);
}
}
否则{
echo“top.location.href='$loginUrl';”;
}

您必须将用户重定向到具有授权代码的页面。 如果您的用户未取消应用程序的授权,则不会显示Oauth对话框

有关更多信息,请访问

你能用这个吗?
$facebook = new Facebook(array(
  'appId'  => "app id",
  'secret' => "app secret",
));

$user = $facebook->getUser();
$loginUrl = $facebook->getLoginUrl();

if ($user) {
  try {
    $me = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);   
  }
}
else {
    echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
}