Intereting Posts
Регулярное выражение соответствует {{число} " PDO: «Недопустимый номер параметра» при подстановке нескольких параметров с одинаковым значением Добавление динамического предложения where в запрос с разбиением на страницы в Laravel Как использовать маршрутизацию laravel для неизвестного количества параметров в URL? PHP-рекурсивный массив из списка PHP – добавить элемент в начало ассоциативного массива UPDATE Code вызывает ошибку, но мне все хорошо: Изменить URL-адрес ответа без перенаправления Настройка пользовательских параметров при добавлении продукта в корзину через SOAP в Magento Предупреждение при попытке конвертировать временную метку в считываемый формат для каждого экземпляра при циклировании массива Как получить полезные сообщения об ошибках в PHP? Magento Rest API – ошибка oAuth Я создаю небольшое веб-приложение, и я хочу использовать JSON API для ввода сообщений WordPress в мое веб-приложение Искать блок текста, возвращать ссылки в формате MP3 с помощью PHP isset () vs strlen () – вычисление быстрой / четкой длины строки

Facebook-connect дает цикл переадресации

Пожалуйста, мне нужна помощь. Я занимаюсь этой проблемой в течение 1 месяца!

Я хотел бы использовать facebook connect login для своего сайта, используя PHP и php-sdk 3.1.1. В нескольких словах мой код работает в автономном режиме (на локальном хосте), но не в сети, что приводит к «Слишком много циклов переадресации (в Chrome)»: Ошибка 310 (net :: ERR_TOO_MANY_REDIRECTS): было слишком много перенаправлений.

Вот мой код:

1 / Я загружаю facebook, подключая SDK и инициализируя его:

require 'src/facebook.php'; $facebook = new Facebook(array( 'appId' => '209633612480053', 'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx' )); 

Обратите внимание, что я создал два приложения на странице facebook-developper, один для автономных тестов, а другой для онлайн-тестов. И я уверен, что правильно переключаться между двумя парами appId / secret (онлайн и офлайн) при тестировании. Таким образом, это не проблема плохого facebbok-connect init.

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>'; } 

Это так просто: если пользователь подключен к facebook, отобразите его информацию, иначе перенаправите страницу входа в facebook, чтобы разрешить доступ.

ЭТО РАБОТАЕТ СОВЕРШЕННО ОФЛАЙН, но в сети, я получаю ошибку хрома:

 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. 

Некоторая дополнительная информация: онлайн, я использую хост провайдера 1and1 и, конечно же, имею ту же конфигурацию сервера, что и автономный сервер (который является MAMP Pro), я загрузил файл sams php.ini.

Пожалуйста, если у кого-то есть идея или возникнет аналогичная проблема, я буду рад получить помощь.

Заранее благодарю за помощь.

ОБНОВИТЬ:

Я обновил свой код, чтобы сосредоточиться на проблемной строке, поэтому вместо перенаправления на страницу входа в 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 на панели URL.

Итак, почему facebbok перенаправляет на мою страницу скрипта, не указав мне информацию о пользователе?

Пожалуйста, любая идея?

У меня была эта проблема, в моем случае мне пришлось редактировать base_facebook.php из SDK:

 public static $CURL_OPTS = array( CURLOPT_CONNECTTIMEOUT => 10, CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 60, CURLOPT_USERAGENT => 'facebook-php-3.2', CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, ); 

Последние два варианта я добавил вручную.

У меня была аналогичная проблема с браузером Chrome, файлы cookie всегда были неправильными или пустыми.

Затем я загрузил пример из facebook из Heroku (он использует всплывающее окно в качестве логина вместо перенаправления js) и заметил, что он не работает в chrome, когда базовый URL-адрес веб-сайта не является корневым URL-адресом сервера (например: localhost/somedirectory/ ). Но после создания виртуального хоста он выглядит так, как будто он работает.

Вы можете увидеть пример index.php из приложения здесь https://gist.github.com/2845986