未解决:Omniauth-facebook不提供来自facebook api 2.4的电子邮件

时间:2015-09-08 03:17:32

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

我的网页上有一个Ruby on Rails facebook登录设置,使用omniauth-facebook 1.4.1(不使用Devise)和facebook api 2.4。虽然登录有效,但我无法使用范围检索电子邮件或user_birthday。我已经搜索了所有关于此的帖子,对我来说仍然没有解决。

在我的初始化程序中,/ config / externalizer / omniauth.rb,

<div>
  <p> index of 1: 0 </p>
  <p> index of 2: 1 </p>
  <p> index of 3: 2 </p>
  <p> index of 4: 3 </p>
  <p> index of 5: 4 </p>
</div>

在我的/models/user.rb中,

Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, 'APP_ID', 'APP_SECRET', :scope => 'email', info_fields: 'email,name', :display => 'popup'
end

我的controllers / sessions_controller.rb,

class User < ActiveRecord::Base

def self.sign_in_from_omniauth(auth)
    find_by(provider: auth['provider'], uid: auth['uid']) || create_user_from_omniauth(auth)
end

def self.create_user_from_omniauth(auth)
    create(
        provider: auth['provider'],
        uid: auth['uid'],
        name: auth['info']['name'],
        first_name: auth['info']['first_name'],
        last_name: auth['info']['last_name'],
        image: auth['info']['image'],
        email: auth['info']['email']
        )
end
end

对于解决方案的每一次尝试,我都重新设置了我的服务器,做了rake db:drop db:create db:migrate。我检查我的数据库和名称,uid和图像链接已存储,但不是电子邮件...另外:在Facebook上,在“状态和审查”侧标签下,我对“你想要的”是“是”使这个应用程序及其所有实时功能可供公众使用?“,启用电子邮件,public_profile和user_friends。

我也试过下载omniauth-facebook 2.0.1。不知道该怎么办,请帮忙:)。这似乎是人们可能会遇到的一个常见问题......

0 个答案:

没有答案