如何获取也使用我的应用程序的当前用户的朋友列表?

时间:2012-05-14 13:15:55

标签: facebook facebook-graph-api web-applications

我的要求是找到安装该应用程序的朋友列表。

在这里,我需要将输入作为应用程序ID,根据此应用程序ID,我需要获得已安装此应用程序的用户。

4 个答案:

答案 0 :(得分:6)

比avs099的答案更快(单次通话):

使用该应用的访问令牌向/me/friends?fields=installed(或/USER_ID/friends?fields=installed申请访问令牌)进行API调用

答案 1 :(得分:2)

这相对容易:

  1. 使用https://graph.facebook.com/me/friends电话获取好友列表(您可以使用Graph API Explorer

  2. 对于每位朋友,请获取他的ID并向以下图表API发送请求:https://graph.facebook.com/FRIEND_ID?access_token=APP_ID|APP_SECRET& fields = installed

  3. 注意:根据documentation

    字段=已安装是必需的

    如果你找回像

    这样的东西
      

    {“installed”:true,“id”:“FRIEND_ID”}

    这意味着朋友安装了该应用。如果它只是ID回来 - 那么他没有安装应用程序。

    APP_ID和APP_SECRET可在您的应用页面上找到。

    希望有所帮助。

答案 2 :(得分:0)

我遇到了同样的问题,但在使用带有FQL的Facebook API时仍然有点模糊。 Facebook FQL页面几乎没有任何帮助,所以我继续为那些可能在未来努力解决这个问题的人写了一个快速的解决方案。

我只想说,如果您使用的是Facebook PHP SDK,可以将长FQL解决方案压缩成几行,这非常好看。 My Facebook API Solution

答案 3 :(得分:0)

如果你正在使用考拉,你可以这样做

在控制器user.rb

@user = User.all

在模型user.rb

def friends_using_app
facebook { |fb| fb.get_connection("me", "friends?fields=installed") }
end

在视图中

 <% friends = current_user.friends_using_app %>
 <% friends_using_app = friends.find_all {|x| x['installed'] == true}    %>
 <% friends_id = friends_using_app.map {|x| x['id']}  %>
 <% show_friends = @user.find_all{|x| x[:uid] = friends_id} %>
 <% show_friends.each do |x| %>
 <%= image_tag x.avatar %>
 <% end %>