Я пытаюсь экспериментировать с новой системой аутентификации facebook, и я не могу заставить login работать.
Я получаю следующее сообщение об ошибке:
Код ошибки API: 100
API Ошибка Описание: Неверный параметр
Сообщение об ошибке: следующее не принадлежит приложению.
URL-адрес, который отправляется в facebook:
http://www.facebook.com/connect/uiserver.php?app_id=444444444444444&next=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%23%3F%3D%26cb%3Df357eceb0361a8a% 26origin% 3Dhttp% 253A% 252F% 252Fwww.mysite.com% 252Ff38fea4f9ea573% 26relation% 3Dopener% 26transport% 3Dpostmessage% 26frame% 3Df23b800f8a78% 26result% 3DxxRESULTTOKENxx & дисплей = всплывающее окно и канал = HTTP% 3A% 2F% 2Fwww.mysite.com% 2Ffbtester.php & отмены = HTTP% 3A% 2F% 2Fstatic.ak.fbcdn.net% 2Fconnect% 2Fxd_proxy.php% 23% 3F% 3D% 26cb% 3Df6095a98598be8% 26origin% 3Dhttp% 253A% 252F% 252Fwww.mysite.com% 252Ff38fea4f9ea573% 26relation% 3Dopener% 26transport% 3Dpostmessage% 26frame% 3Df23b800f8a78% 26result% 3DxxRESULTTOKENxx & локаль = ru & return_session = 1 & session_version = 3 & fbconnect = 1 & холст = 0 & legacy_return = 1 & метод = permissions.request
Обратите внимание, что переменная «Next» в URL-адресе:
следующая = HTTP% 3A% 2F% 2Fstatic.ak.fbcdn.net% 2Fconnect% 2Fxd_proxy.php% 23% 3F% 3D% 26cb% 3Df357eceb0361a8a% 26origin% 3Dhttp% 253A% 252F% 252Fwww.mysite.com% 252Ff38fea4f9ea573% 26relation% 3Dopener% 26transport% 3Dpostmessage% 26frame% 3Df23b800f8a78% 26result% 3DxxRESULTTOKENxx
Любые идеи, что может пойти не так? Все, что я сделал, это скопировать и вставить демо-код входа в facebook с веб-сайта facebook:
<?php define('FACEBOOK_APP_ID', 'your application id'); define('FACEBOOK_SECRET', 'your application secret'); function get_facebook_cookie($app_id, $application_secret) { $args = array(); parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args); ksort($args); $payload = ''; foreach ($args as $key => $value) { if ($key != 'sig') { $payload .= $key . '=' . $value; } } if (md5($payload . $application_secret) != $args['sig']) { return null; } return $args; } $cookie = get_facebook_cookie(FACEBOOK_APP_ID, FACEBOOK_SECRET); ?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml"> <body> <?php if ($cookie) { ?> Your user ID is <?= $cookie['uid'] ?> <?php } else { ?> <fb:login-button></fb:login-button> <?php } ?> <div id="fb-root"></div> <script src="http://connect.facebook.net/en_US/all.js"></script> <script> FB.init({appId: '<?= FACEBOOK_APP_ID ?>', status: true, cookie: true, xfbml: true}); FB.Event.subscribe('auth.login', function(response) { window.location.reload(); }); </script> </body> </html>
Спасибо за помощь!
Я получал ту же ошибку, но я использую Rails, и проблема заключалась в том, что URL-адрес Connect не обновлялся. Локальное приложение работает на порту 3000, а URL-адрес Connect указывает на порт 80.
Посмотрите, работает ли это для вас.
Connect
» слева Connect URL
Я мало знаю о API Facebook, но я знаю, что вы должны фактически заменить текст your application id
и your application secret
кодом вашего приложения и вашим приложением. 🙂
У меня была такая же проблема и я не мог понять. Это был основной домен, как сказал Джи. Я бы голосовал, но я только присоединился. Требования к страницам настройки FB настолько плохие … Я использовал localhost.
Я также использовал querystring из «nothing = 1» для тестирования b / c нового требования, в котором говорится: «URL-адрес соединения должен указывать на каталог (т. Е. Заканчиваться на« / ») или на динамическую страницу (т. Е. ?" где-то.
Поэтому вы не можете просто поставить default.aspx. Вы должны закончиться косой чертой или иметь? что является странным требованием для подключения.
Спасибо Цзи !!!
Я смог решить эту проблему с помощью этих настроек:
Базовый домен: домен .com (это также должно решить проблемы adelein с несколькими субдоменами)
Connect URL: должен быть допустимым URL http: // или https: // с косой чертой в конце ИЛИ '?' где-то в URL, обозначая строку запроса. В принципе, facebook не хочет, чтобы вы отправляли людей на статические страницы, которые неправильно обрабатывают установленную авторизацию, я думаю.
если URL-адрес подключения правильный, и он по-прежнему не работает, перейдите в настройку вашего приложения, укажите правильный базовый домен. Для тестирования вы можете использовать localhost. Если вам еще не повезло, перейдите в настройку миграции, отключите «новое разрешение данных»,