【发布时间】:2014-01-26 22:39:55
【问题描述】:
我正在尝试使用 FB Open Graph 让我的应用更新用户的属性。我安装了考拉并使用 facebook-omniauth 进行身份验证。只是我想查询我的数据库以查找与他的 fb id 匹配的用户,如果该用户不存在,那么我想使用来自 facebook API 的数据更新用户模型的属性。我也使用 mongoid 作为我数据库的活动记录的对立面。
在我的用户模型中,我有这个方法。
定义脸书 @facebook ||= Koala::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
当我在控制台中玩耍时,User.facebook.get_object("email") 不会向我返回用户的电子邮件。有人知道怎么做吗?
谢谢!
【问题讨论】:
-
在我的控制台上玩了很多之后,我能够弄明白。用于检索用户电子邮件的代码行是: User.facebook.get_object("me", :fields=>"email")["email"] 我确信有更简单的方法可以做到这一点为我工作。
-
确保您已获得具有
user_email权限的oauth 令牌。然后你就可以发出@facebook.get_object user_id,它将返回用户信息和用户的电子邮件
标签: ruby-on-rails ruby facebook facebook-graph-api