0

在我的 Rails 应用程序中,当有人注册 Facebook 时,我会尝试获取他们的电子邮件、姓名、图片、位置、简历、网站。

我正在使用Omniauth Facebook这是我遵循的指南

注册工作顺利,浏览器或日志中没有错误,但位置、简历和网站都返回为零。这可能是什么原因造成的?我怎样才能解决这个问题?

我可以访问 user_location、user_about_me、user_website 吗?

https://developers.facebook.com/docs/facebook-login/permissions/v2.2?locale=en_GB#reference

宝石文件

gem 'devise'
gem 'omniauth-facebook'

用户.rb

  def self.from_omniauth(auth)
  where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
    user.email = auth.info.email
    user.password = Devise.friendly_token[0,20]
    user.name = auth.info.name  
    user.image = auth.info.image 
    user.location = auth.info.user_location 
    user.about = auth.info.user_about_me 
    user.website = auth.info.user_website 
  end
end

Devise.rb 初始化程序

  config.omniauth :facebook, "APP_ID", "APP_SECRET",
          scope: 'email, user_location, user_about_me, user_website',
                  strategy_class: OmniAuth::Strategies::Facebook

任何帮助将非常感激!

4

1 回答 1

1

Facebook API 文档相当混乱。

问题不在于rails 代码或omniauth gem。

默认情况下,Facebook 只批准您的应用程序获取用户的姓名、电子邮件、图像和一些其他属性。

为了能够获取任何用户的位置、简历或网站,您需要单独申请每个用户的权限。

于 2014-12-16T02:09:07.697 回答