ruby-on-rails - Rails 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"
}
请帮助我摆脱困境。提前致谢。
解决方案
在查看了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"
}
推荐阅读
- reactjs - 无法使用 create-react-app 创建新的反应项目
- shell - 如何直接从脚本向 ftp 终端提供输入
- clickhouse - 了解 clickhouse 分区
- r - Shiny:如何识别正在选择哪个 SelectInput() 并在 server.r 中使用该信息
- r - ggplot2:从列表和常见图例中在多个页面上绘制图形
- scala - 将 DataFrame 写为按列分区的 CSV 时如何保留它的顺序?
- python - 如何将 asyncio create_connection 用于 IPv6 地址?
- java - 未处理的异常类型 Throwable without generic type
- java - 从字符串中提取占位符
- arrays - 如何并行运行 API 调用 (Node.js)