如何使用Koala gem获取Facebook用户的电子邮件

Gab*_*ant 3 ruby facebook ruby-on-rails facebook-graph-api

我正在尝试使用FB Open Graph让我的应用更新用户的属性.我安装了Koala并使用facebook-omniauth进行身份验证.我只想查询我的数据库,寻找与他的fb id匹配的用户,如果该用户不存在,那么我想用来自facebook API的数据更新用户模型的属性.另外我使用mongoid反对我的数据库的活动记录.

在我的用户模型中,我有这种方法.

def facebook @facebook || =考拉:: Facebook :: API.new(oauth_token)结束

在我的控制器中,我在我的一个方法中有这些代码行.

@user = User.where(facebook_uid:params [:auth_id])

if @user.empty?
      User.create(
       first_name: User.facebook.get_object("name"),
       last_name: User.facebook.get_object("email"),
       facebook_uid: params[:auth_id],
       facebook_oauth_token: params[:auth_token])
    else
      User.update_attributes(
        facebook_oauth_token: params[:auth_token]
    end
Run Code Online (Sandbox Code Playgroud)

当我在我的控制台中玩游戏时,User.facebook.get_object("email")不会返回用户的电子邮件.有人知道怎么做吗?

谢谢!

Far*_*ooq 5

这应该工作:

graph = Koala::Facebook::API.new(oauth_access_token)
profile = graph.get_object('me', fields:'email')
Run Code Online (Sandbox Code Playgroud)

现在profile['email']将为您提供用户的电子邮件.