Я новичок в Rails и пытаюсь создать простое приложение с интеграцией в Facebook.Я работал над учебными пособиями по Rails, и мне это довольно удобно.Я использую Koala Framework для обработки содержимого Facebook.
В настоящее время у меня есть 2 контроллера, один для обработки основного варианта использования приложения и один для обработки учетных записей пользователей.Базовый вариант использования требует, чтобы аутентификация пользователя выполнялась не только для просмотра сайта, и я хотел бы предоставить эту аутентификацию через Facebook.Что я хочу сделать, так это «зарегистрировать» пользователя в моем приложении при первом входе в Facebook.Единственное, что определяет моя модель User, это поле facebook_id.Насколько я могу судить, это может потребовать какого-то обратного вызова из Facebook для моего приложения, чтобы инициировать регистрацию.Я думаю, что мне также нужно иметь возможность определить, когда пользователь вошел в систему, чтобы предоставить им расширенную функциональность;Насколько я понимаю, это может быть реализовано как before_filter, так что у меня пока есть:
# ApplicationController
def authenticate
@facebook_cookies ||= Koala::Facebook::OAuth.new.get_user_info_from_cookie(cookies)
end
#PacksController - the app's actual functionality
class PacksController < ApplicationController
before_filter :authenticate, :except => [:index, :show]
def index
..
end
def show
..
end
def new
..
end
def create
..
end
end
Я поместил кнопку входа в Facebook в моем application.html.erb после асинхронногоПример на самом Facebook.Я думаю, что это может быть неправильно, но я не совсем уверен;это, кажется, не включает URL обратного вызова, например, если это то, что мне нужно использовать.Я также настроил свой файл facebook.yml согласно https://github.com/arsduo/koala/wiki/Koala-on-Rails, и попытался добавить параметр callback_url (я даже не знаю, является ли это допустимой директивой конфигурации для Koala ...).
Я много читал вики GitHub и Googled, и я чувствую, что застрял.Возможно ли то, что я пытаюсь сделать?Извините, если что-то неясно.