0
我已经使用了一年多的stackoverflow,并且总是通过搜索找到答案。但是,我找不到这个问题的答案,所以这个星期是我的第一个问题:Rails 4 Facebook身份验证 - 其他信息
我跟随Ryan Bates RailsCast#360了解如何在使用omniauth-facebook gem的Rails中验证用户,并且在搜索围绕很长时间设法适应它的Rails 4.
不幸的是,当我试图通过拉动first_name和last_name(意思是?)与散列中的其他细节一起发送,我无法让它工作。我设法得到另一个程序甚至图像的电子邮件地址,但是first_name和last_name没有被发送。我碰到下面的返回,当我在会议#raise request.env["omniauth.auth"].to_yaml
创建
--- !ruby/hash:OmniAuth::AuthHash
provider: facebook
uid: '105531523151136'
info: !ruby/hash:OmniAuth::AuthHash::InfoHash
name: Donna Alajhbhfedabi Bushakwitz
image: http://graph.facebook.com/105531523151136/picture
...
这里是我的omniauth.rb初始化
OmniAuth.config.logger = Rails.logger
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, FACEBOOK_CONFIG['app_id'], FACEBOOK_CONFIG['secret']
end
而且我user.rb文件:
class User < ActiveRecord::Base
def self.from_omniauth(auth)
where(provider: auth.provider, uid: auth.uid).first_or_initialize.tap do |user|
user.provider = auth.provider
user.uid = auth.uid
user.name = auth.info.name
user.first_name = auth.info.first_name
user.last_name = auth.info.last_name
user.oauth_token = auth.credentials.token
user.oauth_expires_at = Time.at(auth.credentials.expires_at)
user.save!
end
end
end
任何帮助将是大。我一直在试图弄清楚最近3天有什么问题。
谢谢!这工作,但我也必须重新启动服务器。我想我昨天试过,但没有重新启动服务器(并且可能在我的代码中也有其他错误)。 但是再次感谢! – Nick