【问题标题】:How do I setup omniauth-facebook on an already existing omniauth and devise rails app?如何在现有的omniauth 上设置omniauth-facebook 并设计rails 应用程序?
【发布时间】:2013-03-12 20:05:55
【问题描述】:

所以,我按照此处提到的说明进行操作 http://railscasts.com/episodes/235-devise-and-omniauth-revised 并成功设置了登录并使用 twitter 选项进行注册。现在我正在尝试设置 facebook。使用gem 'omniauth-facebook'。安装后。然后我添加到/config/initializers/devise.rb 文件中

config.omniauth :facebook, ENV["FB_APP_ID"], ENV["FB_SECRET_ID"]

现在,当我尝试使用 facebook 登录时。我得到了错误 -

ArgumentError in OmniauthCallbacksController#facebook

wrong number of arguments(3 for 2)

我怀疑是否会出现错误。但不知道如何解决。

我的控制器和用户模型与这里提到的相同 - http://railscasts.com/episodes/235-devise-and-omniauth-revised

我错过了什么?

更新:我确实在 user.rb 模型文件中进行了更改

而不是 alias_method :twitter, :all 我做到了 alias_method :twitter, :facebook :all

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 facebook-graph-api omniauth


    【解决方案1】:

    这对我有用:

    Rails.application.config.middleware.use OmniAuth::Builder do
      provider :facebook, 'FB_APP_ID', 'FB_SECRET_ID'
    

    但我没有使用设计,所以尝试删除 ENV

    另请阅读此处了解所有选项和您可能遇到的一些失败:

    https://github.com/plataformatec/devise/wiki/OmniAuth%3a-Overview

    【讨论】:

    • 我通过ENV 得到了它。我没有像你上面那样通过config.middleware 方法和 Omnauth 构建来执行它。现在可以工作了。谢谢
    • 是的,但我仍然很困惑,至于我如何处理这两种方法(同时用于 twitter 和 facebook)?
    • 因为现在我得到了No route matches [GET] "/users/auth/facebook/callback"
    • 哦,好吧,对不起,我以为你已经了解了所有内容。在这里寻找那个问题:stackoverflow.com/questions/6339532/…
    • 我没有用 devise 做,所以我不知道从头开始做的确切区别
    猜你喜欢
    • 2016-06-10
    • 2014-05-23
    • 2012-03-05
    • 2014-08-10
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    相关资源
    最近更新 更多