我的网络应用程序使用Facebook连接时出现错误,当用户打开我的网络应用程序并打开Facebook.com并退出Facebook.com时,就会发生错误。由于我的应用程序和Facebook Connect库不知道会话不再有效,当它尝试使用需要有效会话的某些Facebook Connect功能时,我收到“FacebookRestClientException”,消息“会话密钥无效或不再有效”。 “只是想知道为PHP应用程序处理这个案例的最佳做法是什么。
从谷歌搜索我发现有一个JS功能可以ping Facebook服务器以查看用户是否已登录,但我需要一个服务器端解决方案。
答案 0 :(得分:1)
使用:
$fb_user=$facebook->get_loggedin_user();
这将告诉您登录用户的facebook_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';
}
答案 1 :(得分:0)
由于我在项目中使用CodeIgniter,因此我使用this library进行Facebook Connect。我只是按照Facebook的示例代码。然后,我只需关注flow here和a guide here。注销时,我也会从Facebook注销,否则我的应用程序会重新检测到Facebook会话,并且用户重新登录。