我正在使用Facebook PHP SDK的网站上工作。它工作得很好,2小时后,每当我试图进入网站上的一个常规页面时,我都会...
Fatal error: Uncaught OAuthException: An active access token must be used to query information about the current user.
如果我回到索引页面,我会获得一个新的访问令牌,一切正常...再过2个小时。
当访问令牌过期时,我可以将哪些代码放在我的网页上以重定向到索引页面?
感谢您帮助这个菜鸟。
答案 0 :(得分:1)
您必须将用户重定向到具有授权代码的页面。 如果您的用户未被授权应用程序,则不会显示Oauth对话框。
有关更多信息,请访问 Access Token & Handling
答案 1 :(得分:0)
您可以在代码中添加try / catch
块。
将每个Facebook API调用置于此类块中,如果发生异常,您可以通过header('Location: <url>');
将用户重定向到正确的资源:
try {
# FB API call
}
catch(OAuthException e) {
header('Location: <url>');
}
答案 2 :(得分:0)
有一个类似这样的文件并将其包含在您的网页中。
$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>";
}