1

在我开始之前,我应该说我已经阅读并尝试了许多针对我的问题的建议解决方案,但没有一个解决了它,所以我要再次询问并且非常具体。

我正在使用omniauth 1.1.4 omniauth-facebook 1.4.0和koala 1.7.0rc1将facebook登录集成到rails 4应用程序中,以与图形API进行交互。我正在按照这个铁路广播中的方式进行操作。

我的问题是,当我像这样通过考拉请求用户的 Facebook 朋友时

@current_friends = graph.get_connections('me', 'friends?fields=location,name,id')

返回的好友哈希不包含任何location字段。我尝试更新我的咖啡脚本登录调用,例如:

$('#fb_login').click (e) ->
   e.preventDefault()
   FB.login ((response) ->
     window.location = '/auth/facebook/callback' if response.authResponse), scope: "friends_location"

但这并没有做任何事情。然后我尝试在我的 facebookomniauth 初始化程序中传递一个 scope 参数,修改咖啡脚本,但不这样做:

provider :facebook, ENV['FACEBOOK_APP_ID'], ENV['FACEBOOK_APP_SECRET'], :scope => 'friends_location'

没有不同。我尝试完全删除咖啡脚本并允许完全重定向;我尝试在服务器端和客户端之间切换应用程序的 facebook 控制台上的Auth Token Parameter字段;我基本上尝试了这些东西的所有组合,但仍然没有。最后,我应该注意,当我打电话时

graph.get_connections('me', 'permissions')

返回的权限列表有friends_location=1. 那么发生了什么?

4

1 回答 1

0

您应该添加到范围read_friendlists权限:

provider :facebook, ENV['FACEBOOK_APP_ID'], ENV['FACEBOOK_APP_SECRET'], :scope => 'read_friendlists, friends_location'
于 2013-11-23T10:40:56.043 回答