我正在尝试使用 gem 检索用户所有朋友的位置:fb_graph https://github.com/nov/fb_graph。 (版本1.7.2)
我的权限是:发布流、读取好友列表、离线访问、好友位置、用户位置
我已经对用户进行了身份验证并存储了离线访问令牌及其 Facebook ID。
user = User.find_by_email("[email protected] /cdn-cgi/l/email-protection")
facebook_user = FbGraph::User.fetch(user.facebook_identifier, :access_token => user.facebook_access_token)
facebook_user.friends.map(&:location) => [nil, nil...]
当我检查 Facebook 内部的权限时,它说我可以访问朋友的位置:
http://grab.by/a1Qm http://grab.by/a1Qm
我的问题是,当我尝试获取朋友的位置时,它总是返回零。我已经正确设置了权限,并且我知道该位置对于每个人来说都不应该为零。
有人对如何获取朋友位置有任何建议或指示吗?
Thanks!
所以我能够获得我需要的信息。你必须打电话fetch每次通话后,所以
user = User.find_by_email("[email protected] /cdn-cgi/l/email-protection")
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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)