Ruby on rails 使用fb_graph Ruby gem从Facebook检索好友位置

Ruby on rails 使用fb_graph Ruby gem从Facebook检索好友位置,ruby-on-rails,ruby,facebook,facebook-graph-api,Ruby On Rails,Ruby,Facebook,Facebook Graph Api,我正在尝试使用gem检索用户的所有好友的位置:。(版本1.7.2) 我的权限是:发布流、阅读好友列表、离线访问、好友位置、用户位置 我已经对用户进行了身份验证,并存储了离线访问令牌和他们的facebook id user = User.find_by_email("person@email.com") facebook_user = FbGraph::User.fetch(user.facebook_identifier, :access_token => user.facebook_ac

我正在尝试使用gem检索用户的所有好友的位置:。(版本1.7.2)

我的权限是:发布流、阅读好友列表、离线访问、好友位置、用户位置

我已经对用户进行了身份验证,并存储了离线访问令牌和他们的facebook id

user = User.find_by_email("person@email.com")
facebook_user = FbGraph::User.fetch(user.facebook_identifier, :access_token => user.facebook_access_token)
facebook_user.friends.map(&:location) => [nil, nil...]
当我在Facebook内检查权限时,它说我可以访问朋友的位置:

我的问题是,当我尝试获取我朋友的位置时,它总是返回零。我有正确的权限设置,并且我知道对于每个人来说,位置不应该为零

有人对如何找到朋友有什么建议或建议吗


谢谢

API权限不会覆盖用户的隐私设置。您的facebook用户隐私设置是否可能阻止此操作?或者你所有朋友的隐私设置都阻止了这一点

这样我就能得到我需要的信息了。每次调用后,您都必须调用获取,因此

user = User.find_by_email("email@domain.com")

facebook_user = FbGraph::User.fetch(user.facebook_identifier, :access_token => user.facebook_access_token)
friends = facebook_user.fetch.friends
friends.each do |friend|
  location = friend.fetch.location
  puts location.try(:name)
end
这让我得到了我想要的数据,但是迭代所有数据并对每个数据段进行单独调用的速度相当慢,因此我进行了重构,仅使用直接FQL返回我需要的所有数据

friend_data = FbGraph::Query.new("SELECT uid, first_name, last_name, pic_square, current_location FROM user WHERE uid in (SELECT uid2 FROM friend WHERE uid1='#{user.facebook_identifier}')").fetch(user.facebook_access_token)

我不明白这个问题。从你问题的措辞来看,你似乎没有提到你有什么问题。。。对不起,我累的时候不应该发帖子给你。我编辑并澄清了。嗯,这似乎不太可能。我尝试使用另一个拥有600多个好友的帐户,但也没有任何位置返回该帐户。