Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何处理PHP Facebook会话过期异常?_Php_Facebook_Session_Facebook Php Sdk - Fatal编程技术网

如何处理PHP Facebook会话过期异常?

如何处理PHP Facebook会话过期异常?,php,facebook,session,facebook-php-sdk,Php,Facebook,Session,Facebook Php Sdk,我正在从Javascript SDK登录Facebook。在服务器端,我使用PHPSDK来处理身份验证。我正在使用FacebookJavaScriptLoginHelper()函数。 我面临的问题是,在我注销后,我会出现以下错误: 致命错误:未捕获的异常“Facebook\FacebookSDKException”,消息为“会话已过期,或对此应用无效。”在此行中$Session->validate('app_Id','Secret') if (isset($_SESSION['token']))

我正在从Javascript SDK登录Facebook。在服务器端,我使用PHPSDK来处理身份验证。我正在使用FacebookJavaScriptLoginHelper()函数。 我面临的问题是,在我注销后,我会出现以下错误:

致命错误:未捕获的异常“Facebook\FacebookSDKException”,消息为“会话已过期,或对此应用无效。”在此行中$Session->validate('app_Id','Secret')

if (isset($_SESSION['token'])) {
$session = new FacebookSession($_SESSION['token']);
try {
    $session->validate('App_Id', 'Secret');
} catch(FacebookAuthorizationException $e) {
    unset($session);
    echo "Exception occured, code: " . $e->getCode();
    echo " with message: " . $e->getMessage();
}
}


if (!isset($session)) {
try {
    $helper = new FacebookJavaScriptLoginHelper();
    $session = $helper->getSession();        
    $_SESSION['token'] = $session->getToken();
} catch(FacebookRequestException $e) {
    unset($session);
    echo "Exception occured, code: " . $e->getCode();
    echo " with message: " . $e->getMessage();
}
}
以下是我感兴趣的两点:

  • 当用户登录时,如何处理会话过期并刷新会话
  • 我得到了FacebookAuthorizationException:“此授权代码已被使用”。当我转到上一页并返回时,这个错误消失了。我认为这是因为javascript和php之间的会话传输没有得到正确处理。解决这个问题的正确方法是什么

由于没有适合Facebook登录的文档,因此无法找到解决方案。任何建议都会有帮助。

我建议您使用


它非常易于使用,并可随时实施。

facebookgo将提供一个列表。没有医生,没有解释。有更好的链接吗?非常感谢。