Rails Omniauth facebook不返回默认字段以外的信息字段

时间:2018-05-31 11:39:02

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

我在我的Rails 5应用中使用Facebook身份验证。我想获取除电子邮件之外的用户详细信息。但它没有返回指定的字段。 这是我对devise.rb的配置

config.omniauth :facebook, "APP ID", "APP Secret", scope: 'email', secure_image_url: true, :image_size => 'large', auth_type: 'https',info_fields: 'email,name,first_name,last_name,gender',
client_options: {
    site: "https://graph.facebook.com/v3.0",
    authorize_url: "https://www.facebook.com/v3.0/dialog/oauth"
    }

请帮我摆脱这个。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

在查看omniauth-facebook gem的文档后,您似乎没有收到额外的信息字段,因为您忘记了scope中用户的权限。

尝试将public_profile添加到scope,如下所示:

config.omniauth :facebook, "APP ID", "APP Secret", scope: 'email,public_profile,user_gender', secure_image_url: true, :image_size => 'large', auth_type: 'https',info_fields: 'email,name,first_name,last_name,gender',
client_options: {
  site: "https://graph.facebook.com/v3.0",
  authorize_url: "https://www.facebook.com/v3.0/dialog/oauth"
}