我是 Rails 的新手,正在尝试使用 Facebook 集成构建一个简单的应用程序。我已经完成了 Rails 教程,我对它作为一个框架感到非常满意。我正在使用考拉框架来处理 Facebook 的东西。
我目前有 2 个控制器,一个用于处理应用程序的基本用例,一个用于处理用户帐户。基本用例需要用户身份验证才能执行任何操作,而不仅仅是浏览网站,我想通过 Facebook 提供该身份验证。我要做的是在用户第一次使用 Facebook 登录时向我的应用“注册”用户。我的用户模型定义的唯一内容是 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 本身的异步示例,我将 Facebook 登录按钮放在了我的 application.html.erb中。我认为这可能不正确,但我不完全确定;这似乎不包括回调 URL,例如,如果这是我需要使用的。我还根据https://github.com/arsduo/koala/wiki/Koala-on-Rails配置了我的 facebook.yml 文件,并尝试添加 callback_url 参数(我什至不知道这是否有效考拉的配置指令......)。
我已经阅读了 GitHub wiki 并在 Google 上进行了广泛的搜索,但我觉得自己陷入了困境。我想要做的甚至可能吗?抱歉,如果有任何不清楚的地方。