Не удается получить cookie-файлы Oauth Facebook, используя Koala для подключения к Facebook (с Rails)
Я использую Rails 3.0.9. Попытка войти на мой (локальный) сайт через Facebook.
Мои параметры инициализации на странице входа в систему:
FB.init({
appId : '<%= FB_APP_ID %>',
status : true,
cookie : true,
xfbml : true
});
Кнопка входа работает, я получаю всплывающее окно входа в Facebook, и я могу успешно войти в Facebook. Тогда достигается следующее событие:
FB.Event.subscribe('auth.sessionChange', function(response) {
if (response.session) {location.href= ...}
И меня перенаправляют в нужное место. Но - не могу получить куки "fbs_" или "fbsr_", которые ищет Оавт: get_user_info_from_cookie(куки)
Мои куки = {}, там ничего нет. В некоторых случаях я вспоминаю, что у меня там были некоторые файлы cookie на Facebook, я не могу восстановить такой случай, но в любом случае он не включал "fbs_", только другие.
Кроме того, после входа в систему, когда я возвращаюсь на вкладку Facebook в браузере и обновляю, он показывает мою страницу в Facebook, но через секунду появляется всплывающее окно с надписью "Вам необходимо войти". В моем приложении, тем не менее, он по-прежнему знает, как направить меня к нужному разделу, как это необходимо, когда пользователь вошел в систему.
Мне бы очень хотелось услышать, если у вас есть что-нибудь, что может мне помочь...:-)
Спасибо, Музли.
- Только что получил сценарий с несколькими файлами cookie в Facebook (но не по именам). Получили следующие имена: "datr", "locale", "locale", "reg_fb_gate", "lu". Но даже к этому я не могу добраться с параметром cookie Rails - cookie ["dart"] возвращает ноль. Параметр cookie показывает только файлы cookie с хостом localhost (который содержит данные, когда я вхожу в систему (с оформлением) - обычная процедура входа на сайт.
2 ответа
Просто хотел обновить, чтобы сказать, что я решил свою проблему:
Я добавил к init параметр:
oauth : true
:FB.init({ appId : '<%= FB_APP_ID %>', status : true, cookie : true, xfbml : true, oauth : true });
По-видимому, есть ошибка с добавлением параметров, добавленных в js.src, поэтому я удалил их (!) И проблема была решена:
(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/all.js" //removed: #xfbml=1&appId=<%= FB_APP_ID %>"; fjs.parentNode.insertBefore(js, fjs); } (document, 'script', 'facebook-jssdk'));
Это решило проблему с куки для меня!
Если вы хотите использовать localhost для разработки Facebook, добавьте запись "127.0.0.1 localhost.local" в файл /etc/hosts, измените домен в настройках приложения на developers.facebook.com и укажите браузер на этот URL - он работает без нареканий