Не удается получить 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 ответа

Решение

Просто хотел обновить, чтобы сказать, что я решил свою проблему:

  1. Я добавил к init параметр: oauth : true:

    FB.init({
        appId : '<%= FB_APP_ID %>',
        status : true,
        cookie : true,
        xfbml : true,
        oauth : true
    });
    
  2. По-видимому, есть ошибка с добавлением параметров, добавленных в 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 - он работает без нареканий

Другие вопросы по тегам