Пожалуйста, мне нужна помощь. Я занимаюсь этой проблемой в течение 1 месяца!!
Я хотел бы реализовать вход через facebook connect на свой сайт, используя PHP и php-sdk 3.1.1.В двух словах, мой код работает в автономном режиме (на локальном хосте), но не в сети, что приводит к «Слишком много циклов перенаправления (в Chrome)»: ошибка 310 (net::ERR_TOO_MANY_REDIRECTS): было слишком много редиректов.
Вот мой код:
1/ Я загружаю facebook connect SDK и инициализирую его:
require 'src/facebook.php';
$facebook = new Facebook(array(
'appId' => '209633612480053',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
));
Обратите внимание, что я создал два приложения на странице facebook-developer, одно для офлайн-тестов, а другое для онлайн-тестов . И я уверен, что правильно переключаюсь между двумя парами appId/secret (онлайн и офлайн) при тестировании. Так что проблема не в плохой инициализации facebook-connect.
2/ Я пытаюсь получить информацию о пользователе:
$uid = $facebook->getUser();
if($uid)
{
/*
* Get user information.
*/
$user = $facebook->api('me/');
print_r($user); // Display user info.
}
else
{
/*
* Redirect to FB login URL to allow access.
*/
$loginURL = $facebook->getLoginURL();
echo '<script> top.location.href=\''.$loginURL.'\'</script>';
}
Это так просто: если пользователь ic подключен к facebook, отобразите его информацию, иначе перенаправьте на страницу входа в facebook, чтобы разрешить доступ.
ЭТО РАБОТАЕТ СОВЕРШЕННО В АВТОНОМНОМ РЕЖИМЕ, но в сети я получаю сообщение об ошибке Chrome:
This webpage has a redirect loop
The webpage at https://www.facebook.com/dialog/oauth?client_id=209633612480053&redirect_uri=http%3A%2F%2Fwww.bluward.com%2Foauth%2Ffacebook&state=551f60cd4be6cd8ed1622f8168a5219a#_=_ has resulted in too many redirects. Clearing your cookies for this site or allowing third-party cookies may fix the problem. If not, it is possibly a server configuration issue and not a problem with your computer.
Дополнительная информация: В сети я использую хост-провайдера 1 и 1, и чтобы убедиться, что у меня такая же конфигурация сервера, как и в автономном режиме (который является MAMP Pro), я загрузил файл php.ini sams.
Пожалуйста, если у кого-то есть идеи, или возникнет аналогичная проблема, буду рад помощи.
Заранее благодарю за помощь.
ОБНОВЛЕНИЕ:
Я обновил свой код, чтобы сосредоточиться на проблемной строке, поэтому вместо перенаправления на страницу входа в facebook я отображаю URL-адрес перенаправления, поэтому мне просто нужно щелкнуть, чтобы войти:
$uid = $facebook->getUser();
if($uid)
{
/*
* Get user information.
*/
$user = $facebook->api('me/');
print_r($user); // Display user info.
}
else
{
/*
* Redirect to FB login URL to allow access.
*/
$loginURL = $facebook->getLoginURL();
echo $loginURL; // <-- HERE I CHANGED THE CODE TO DISPLAY LOGIN URL
}
Что я заметил, так это что facebook бесконечно перенаправляет на мою страницу сценария. Изменяется только параметр code
в адресной строке.
Итак, почему facebook перенаправляет на мою страницу скрипта, не предоставляя мне информацию о пользователе?
Пожалуйста, есть идеи?