Php 处理Facebook Connect上的用户注销
我的web应用程序使用Facebook connect时遇到一个错误,当用户同时打开我的web应用程序和Facebook.com并注销Facebook.com时,会发生此错误。由于我的应用程序和Facebook Connect库不知道会话不再有效,因此当它尝试使用某些需要有效会话的Facebook Connect功能时,我收到一个“FacebookRestClientException”,消息是“会话密钥无效或不再有效”。我只是想知道处理php应用程序的这种情况的最佳实践是什么 通过谷歌搜索,我发现有一个JS功能可以ping Facebook服务器,查看用户是否登录,但我需要一个服务器端解决方案。使用:Php 处理Facebook Connect上的用户注销,php,facebook,Php,Facebook,我的web应用程序使用Facebook connect时遇到一个错误,当用户同时打开我的web应用程序和Facebook.com并注销Facebook.com时,会发生此错误。由于我的应用程序和Facebook Connect库不知道会话不再有效,因此当它尝试使用某些需要有效会话的Facebook Connect功能时,我收到一个“FacebookRestClientException”,消息是“会话密钥无效或不再有效”。我只是想知道处理php应用程序的这种情况的最佳实践是什么 通过谷歌搜索,我
$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:会话密钥无效或在会话无效时不再对所有方法有效