アプリが読み込まれておらず、次の 2 つのシナリオで以下のエラーが発生します。
a) キャッシュと Cookie をクリアした後、または以前に使用したことのない PC から、任意のブラウザーでアプリに初めてアクセスしたとき。
b) ユーザー B がアプリ (および Facebook) からログアウトした直後に、ユーザー A が同じ PC とブラウザーから、キャッシュまたは Cookie を消去せずにアプリにアクセスしようとした場合。
ただし、F5 キーを押して Web ページを更新すると、正しく機能しています。
これは、ログ ファイルに表示されるエラーです。
{"readyState":4,"responseText":"Invalid access token","status":200,"statusText":"OK"}
ユーザー検証コード:
require_once(dirname(__DIR__).'/lib/common/AppInfo.php');
require_once(dirname(__DIR__).'/sdk/src/facebook.php');
require_once(dirname(__DIR__).'/lib/logic/UsersLogic.php');
require_once(dirname(__DIR__).'/lib/common/Log.php');
if (substr(AppInfo::getUrl(), 0, 8) != 'https://' && $_SERVER['REMOTE_ADDR'] != '127.0.0.1') {
header('Location: https://'. $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
exit();
}
try {
$facebook = new Facebook(array(
'appId' => AppInfo::appID(),
'secret' => AppInfo::appSecret(),
));
$user_id = $facebook->getUser();
} catch (Exception $e) {
exit("Error getting facebook data");
}
if ($user_id) {
try {
$basic = $facebook->api('/me');
} catch (FacebookApiException $e) {
if (!$facebook->getUser()) {
exit("Invalid access token");
}
}
if($basic==null){
exit("Application not installed");
}
$user=UsersLogic::getUser($user_id);
if($user==null){
exit("User not registered in database");
}
}
else{
exit("No user logged");
}
なぜそれが起こるのですか?おそらく、新しいユーザー アクセス トークンを強制的に要求する必要がありますか? (どうやって)
ありがとう