Facebookの「Facebookログイン付きWebサイト」アプリ設定を利用している(現在は非常に単純な)Webサイトがあります。私の問題は一見単純に見えますが、私はそれを解決することができません、誰かが何か光を当てることができますか?
私のウェブサイトのホームページは(たとえば)https://www.mysite.net/ です。ここから以下のコードを使用してログインすると、機能します。
if(!$this->facebook->getUser())
{
//NOT LOGGED IN
$params = array(
'scope' => 'email, publish_stream, user_photos, status_update',
'redirect_uri' => current_url(),
);
$auth_url = $this->facebook->getLoginUrl($params);
$auth_text = "Log In";
}
else
{
//LOGGED IN
$fbid = $this->facebook->getUser();
$fbid = $fbid;
$auth_url = "https://www.facebook.com/logout.php?confirm=1&next=".urlencode(base_url().'logout/')."&access_token=".$this->facebook->getAccessToken();
$auth_text = "Log Out";
}
<a href="<?=$auth_url;?>" class="btn btn-primary"><i class="icon-user"></i> <?=$auth_text;?></a>
..それはうまくいきます。
ただし、https://www.mysite.net/second_page/から同じコードを使用し(ユーザーがログインする必要があり) 、2ページ目でも上記のコードを使用すると、ログインスクリプトはにリダイレクトされます。 Facebook Auth Dialog(素晴らしい)、redirect_uri(これも素晴らしい)にリダイレクトしますが、ユーザーはページにログインしていません。つまり、期待される「ログアウト」ダイアログではなく「ログイン」ダイアログが表示されます。
私はここで何か間違ったことをしていますか?Facebookのログインダイアログは、アプリで指定されたサイトルートのどのページからでも機能することを期待しています。ログインするたびにユーザーをホームページにリダイレクトする必要はありません。ユーザーはサイトのどのページからでもログインできる必要があります。
考え?
よろしく、ポールG