如何在登录后从Facebook接收电子邮件,名字,姓氏和手机

时间:2015-08-11 03:18:34

标签: ruby-on-rails facebook omniauth-facebook

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”})

未接收登录用户的电子邮件名字,姓氏,手机,但该帐户包含所有信息(电子邮件名字,姓氏,手机等)

1 个答案:

答案 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

中执行必要的更改