0
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/pi​​cture (2KB)", "name"=>"Rakesh PD"}, "provider"=>"facebook", "uid"=>"846548425" })

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

4

1 回答 1

0

我建议您创建一个html/js文本文件,以了解Facebook 的 javascript API是如何工作的。

登录后,您可以快速了解 Facebook 发送的原始数据。特别是对数据的限制将很容易被发现。

对 omnialth-facebook gem 的响应与来自 javascript SDK 的响应相同(或非常接近)。

因此,如果javascript SDK responce生成您需要的帐户参数,omnialth-facebook gem也可以检索它。请注意,如果vanilla javascript响应没有您需要的所有参数,您可能需要调整您的 Facebook 应用程序。

经过几轮实验,我相信您将能够调整您的facebook app或在您的rails app

于 2015-08-11T04:20:26.527 回答