在我开始之前,我应该说我已经阅读并尝试了许多建议的解决方案来解决我的问题而且没有一个解决过它,所以我会再次提出问题并且非常具体。
我正在使用omniauth 1.1.4 omniauth-facebook 1.4.0与koala 1.7.0rc1进行facebook登录集成到rails 4应用程序与图API进行交互。我完全按照this铁路广播这样做。
我的问题是,当我通过考拉请求用户的Facebook好友时,
@current_friends = graph.get_connections('me', 'friends?fields=location,name,id')
返回的好友哈希不包含location
字段。我尝试更新我的coffeescript登录电话,如:
$('#fb_login').click (e) ->
e.preventDefault()
FB.login ((response) ->
window.location = '/auth/facebook/callback' if response.authResponse), scope: "friends_location"
但是没有做任何事情。然后我试着用coffeescript修改而没有,在我的facebook omniauth初始化器中传递一个scope参数:
provider :facebook, ENV['FACEBOOK_APP_ID'], ENV['FACEBOOK_APP_SECRET'], :scope => 'friends_location'
没有区别。我试图完全删除coffeescript并允许完全重定向;我尝试在服务器和客户端之间切换应用程序的Facebook控制台上的验证令牌参数字段;我基本上尝试了这些东西的每一个组合,但仍然没有。最后,我应该注意,当我打电话
graph.get_connections('me', 'permissions')
返回的权限列表包含friends_location=1
。那是怎么回事?
答案 0 :(得分:0)
您应该添加范围read_friendlists
权限:
provider :facebook, ENV['FACEBOOK_APP_ID'], ENV['FACEBOOK_APP_SECRET'], :scope => 'read_friendlists, friends_location'