私のウェブサイトの特定のコンテンツにアクセスする前に、ユーザーがFacebookにログインするようにします。このコードは、ユーザーがFacebookからログアウトしたときに正常に動作します。 Facebookにログインしてから自分のサイトにリダイレクトするボタンが表示されます。Facebookにログインしているユーザーにログインしようとすると、返信する代わりにエラーが返されます
数日前までは、コードはすでにログインしていたときにも機能しました。ログインしたユーザーもログインボタンを見ましたが、クリックしたときにすぐに自分のサイトに戻ってきましたFacebookはまったくありません。彼らはすでにログインしているとき今、彼らは(URL https://www.facebook.com/common/invalid_request.php付き)Facebookのエラーページを参照してください。
私はFacebookのPHP SDKのバージョン5を使用しており、これは私のコードの関連する部分です。もちろん、「APP_ID」と「APP_SECRET」はライブコードの正しい文字列です。
require_once($_SERVER["DOCUMENT_ROOT"] . '/facbookphpsdk/autoload.php');
$fb = new Facebook\Facebook([
'app_id' => 'APP_ID',
'app_secret' => 'APP_SECRET',
'default_graph_version' => 'v2.6',
'default_access_token' => 'APP_ID|APP_SECRET'
]);
$helper = $fb->getRedirectLoginHelper();
try {
$accessToken = $helper->getAccessToken();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo "1<br>";
echo $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo "2<br>";
echo $e->getMessage();
exit;
}
if (isset($accessToken)) {
// user is logged in to Facebook
} else {
$helper = $fb->getRedirectLoginHelper();
$permissions = ['public_profile']; // optional
$callback = 'http://my.website.com/login_to_facebook.php';
$loginurl = $helper->getLoginUrl($callback, $permissions);
// show a login dialog for the user to log in to Facebook
}