我正在使用 facebook php api 来控制对我的 webapp 某些部分的访问。基本上我只是在每次加载页面时检查用户是否登录到 facebook 并且用户授权应用程序(基本权限),然后根据状态打印内容。
之类的,if($check_user_lo_npe) { echo 'Welcome!'; }
就这么简单。好吧,一切正常,直到我意识到如果用户从他们在 facebook 中的用户设置中删除应用程序,这意味着令牌无效,即使我知道令牌无效,我仍然会true
从函数中得到响应,因为check_user_lo_npe
我说,用户删除了应用程序。这就是我检查权限的方式:
function check_user_lo_npe() {
global $facebook;
global $data;
$fb_user_id = $facebook->getUser();
if ($fb_user_id) {
try {
if(!isset($_SESSION['fb_user_profile'])) {
$_SESSION['fb_user_profile'] = $facebook->api('/me');
$temparray = $facebook->api('/me/friends');
$_SESSION['fb_user_friends'] = count($temparray[data]);
}
$data->reg_user($_SESSION['fb_user_profile'],$_SESSION['fb_user_friends']);
return array(true,'');
} catch (FacebookApiException $e) {
$fb_user_id = NULL;
return array(false,$e->getMessage());
}
} else {
return array(false,'');
}
}
我需要意识到用户何时删除应用程序,以便我可以再次将它们发送到登录屏幕,该功能应该检测何时出现异常,但不知何故我没有得到任何......为什么?