Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.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 Connect上的用户注销_Php_Facebook - Fatal编程技术网

Php 处理Facebook Connect上的用户注销

Php 处理Facebook Connect上的用户注销,php,facebook,Php,Facebook,我的web应用程序使用Facebook connect时遇到一个错误,当用户同时打开我的web应用程序和Facebook.com并注销Facebook.com时,会发生此错误。由于我的应用程序和Facebook Connect库不知道会话不再有效,因此当它尝试使用某些需要有效会话的Facebook Connect功能时,我收到一个“FacebookRestClientException”,消息是“会话密钥无效或不再有效”。我只是想知道处理php应用程序的这种情况的最佳实践是什么 通过谷歌搜索,我

我的web应用程序使用Facebook connect时遇到一个错误,当用户同时打开我的web应用程序和Facebook.com并注销Facebook.com时,会发生此错误。由于我的应用程序和Facebook Connect库不知道会话不再有效,因此当它尝试使用某些需要有效会话的Facebook Connect功能时,我收到一个“FacebookRestClientException”,消息是“会话密钥无效或不再有效”。我只是想知道处理php应用程序的这种情况的最佳实践是什么

通过谷歌搜索,我发现有一个JS功能可以ping Facebook服务器,查看用户是否登录,但我需要一个服务器端解决方案。

使用:

$fb_user=$facebook->get_loggedin_user();
这将告诉您登录用户的facebook\u uid,如果未登录,则返回false

例如:

$fb_user=$facebook->get_loggedin_user();

if($fb_user)
{
    try{
        $setstatus = $facebook->api_client->users_setStatus(
            $status,
            $facebook_uid
            );
        echo 'status has been updated';
    }catch (Exception $e) {
        if($e->getCode() === 102)
        {
           // user is not logged in
           echo 'you must log in to update your status';
        }
        log_error($e->getMessage()); // log your error so you can fix it if you need to
    }
}else{
    echo 'you must log in';
}

因为我在我的项目中使用了CodeIgniter,所以我经常使用Facebook连接。我只是遵循Facebook的示例代码。然后我就跟着和走。注销时,我也会从Facebook注销,否则,我的应用程序将重新检测Facebook会话,用户将重新登录。

我相信此值已设置并存储在服务器端的Facebook对象中,该对象不知道用户已注销Facebook.com,因此即使用户实际注销,它也会返回Facebook uid。我试过这个只是为了以防万一,它不起作用…在这种情况下,你可以捕捉错误,检查它的回报。查看我的错误日志,我看到返回“会话密钥无效或不再有效”。您可能需要检查它。facebook返回:错误:102常量:API_EC_PARAM_SESSION_KEY description:会话密钥无效或在会话无效时不再对所有方法有效