Devise.rb
require "omniauth-facebook"
# CREDENTIALS_CONFIG = YAML.load_file("#{Rails.root}/config/omniauth.yml")[Rails.env].symbolize_keys
# config.omniauth :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET'], :strategy_class => OmniAuth::Strategies::Facebook, :image_size => 'large'
Rails.application.config.middleware.use OmniAuth::Builder do
if Rails.env == 'production'
provider :facebook, 'sample_key', 'sample_key'
elsif ['staging', 'development'].include? Rails.env
provider :facebook, 'key_sampl', 'key_sdfjkhd',
:scope => 'email', :info_fields => 'email'
end
end
登录facebook后收到此哈希: ({extra“=> {”raw_info“=> {”id“=>”846548425“,”name“=>”Rakesh PD“}},”info“=> {”image“=> ;“http://graph.facebook.com/846548425430988/picture(2KB) “,”“name”=>“Rakesh PD”},“provider”=>“facebook”,“uid”=>“846548425”})
未接收登录用户的电子邮件名字,姓氏,手机,但该帐户包含所有信息(电子邮件名字,姓氏,手机等)
答案 0 :(得分:0)
我建议您创建一个html/js
文本文件,以便了解Facebook's javascript API的工作原理。
您可以快速了解登录后Facebook发送的原始数据。特别是对数据的限制很容易发现。
对omnialth-facebook gem的响应与javascript SDK中的响应相同(或非常接近)。
因此,如果javascript SDK responce
生成您需要的帐户参数,omnialth-facebook gem
也可以检索它。请注意,如果vanilla javascript
响应没有您需要的所有参数,则可能需要调整您的Facebook应用。
经过一轮实验后,我相信您可以调整facebook app
或在rails app