我有一个使用omniauth进行Facebook登录的Rails应用程序。 我还使用fb_graph获取用户的朋友列表。 我只想显示他以前使用过我的应用程序的朋友,而不是显示current_user的所有朋友。

我正在考虑的方法是在用户模型中添加一个字段,以便可以在显示好友的视图中进行检查。 所以举个例子

graph_user = FbGraph::User.me(current_user.oauth_token)
@friends = graph_user.friends

在控制器中。 然后,在视图中我可以拥有:

@friends.each do |friend|
- if User.find_by_uid(friend.uid)
# display that friend

不幸的是,“朋友”没有uid,但是经过身份验证的用户显然有。 创建新用户(例如电子邮件)后,我是否可以向Facebook提出一些要求,以便稍后与“朋友”核对。

可以检查电子邮件吗? 目前,我们不要求从Facebook登录中请求电子邮件,但是如果我这样做,我认为也不是friend.email可以允许我收集它,是吗? 有什么更好的方法?

编辑:我发现了另一个SO帖子 ,说我可以从朋友或其他东西那里获取访​​问令牌,但是我不太了解,也许有人可以给我一些启示或为我提供教程?

谢谢

===============>>#1 票数:0

您可以直接使用fql来获得使用该应用程序的朋友。 我不确定如何在ruby中使用fql,但是这篇文章可能会对您有所帮助- 使用Ruby的Facebook FQL查询

查询以获取使用该应用的朋友-

SELECT uid FROM user WHERE is_app_user=1 AND uid IN (SELECT uid2 FROM friend WHERE uid1 = me())

用户表)

  ask by mharris7190 translate from so

未解决问题?本站智能推荐: