facebook php apiを使用して、Webアプリの一部へのアクセスを制御しています。基本的には、ユーザーが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,'');
}
}
ユーザーがアプリを削除して再度ログイン画面に送信できるようにする必要があります。この関数は例外が発生したときに検出するはずですが、どういうわけか何も表示されません...なぜですか?