3

我是 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 上进行了广泛的搜索,但我觉得自己陷入了困境。我想要做的甚至可能吗?抱歉,如果有任何不清楚的地方。

4

1 回答 1

4

为什么不使用 OmniAuth gem https://github.com/intridea/omniauth/wiki除了 koala,让 OmniAuth 处理您的用户注册?

这是一个关于如何去做的很棒的教程http://sleekd.com/tutorials/setting-up-omniauth-authentication-with-facebook/

于 2011-08-29T08:28:17.667 回答