Facebook PHP SDK访问令牌过期时重定向到索引页
我在一个使用Facebook PHP SDK的网站上工作。这是伟大的工作,2小时后,每当我试图进入网站上的一般网页之一,我得到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小时 当访问令牌过期时,我可以在网页上放置哪些代码以重定向
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>";
}