私が開発したウェブサイトへのアクセスは、facebookconnectを使用して行われます。
オフラインではすべて問題ありませんが、オンラインでは問題ありません。ナビゲーションエラーが発生します(Chromeを使用)「このウェブページにはリダイレクトループがあります」:
https://www.facebook.com/dialog/oauth?client_id=209633612480053&redirect_uri=http%3A%2F%2Fwww.bluward.com%2Faccess%2Flogin_facebook&state=299262ddf89afbf382452df89c9a2ce8&scope=email%2C+user_birthdayのWebページ+ user_location%2C + publish_stream&fbconnect = 1#=リダイレクトが多すぎます。このサイトのCookieをクリアするか、サードパーティのCookieを許可すると、問題が解決する場合があります。そうでない場合は、サーバー構成の問題であり、コンピューターの問題ではない可能性があります。
PHPコードは次のとおりです(CodeIgniterフレームワークを使用)。
public function login()
{
// Get the FB UID of the currently logged in user
$uid = $fb->getUser();
// If the user has already allowed the application, you'll be able to get his/her FB UID
if($uid) {
try {
$profile = $fb->api(array(
'method' => 'users.getinfo',
'uids' => $uid,
'fields' => 'uid, first_name, last_name, pic_square, pic_big, sex, birthday_date, current_location, email'
));
// Only the first user.
$profile = $profile[0];
} catch (FacebookApiException $e) {
return false;
}
// Do stuff when already logged in.
return $profile;
} else {
// If not, let's redirect to the ALLOW page so we can get access
redirect($this->getLoginUrl(array(
'scope' => 'email, user_birthday, user_about_me, user_location, publish_stream',
'fbconnect' => 1
)));
}
}
また、プロファイル情報に応じて、ユーザーがデータベースに既に存在するかどうかを確認してからログに記録し、データベースに存在しない場合はサインアップします。
アップデート:
FacebookのCookieをクリアすると、ログインページへのリダイレクトが成功し、メールアドレス/パスワードを入力できるようになります。
残念ながら、「ログイン」ボタンをクリックすると、上記と同じエラーメッセージが表示されます。