通过图形API查询Facebook用户的朋友

时间:2012-06-11 05:23:47

标签: facebook facebook-graph-api

我正在尝试在iOS应用中实施搜索栏,搜索用户的朋友并显示结果。我不想让所有用户使用https://graph.facebook.com/me/friends,然后搜索结果。是否可以向此类通话添加查询(例如https://graph.facebook.com/me/friends?q=TIM)?使用图API的搜索功能似乎只能公开搜索。

2 个答案:

答案 0 :(得分:1)

正如您在Graph API资源管理器中看到的那样,您无法通过Graph API搜索朋友列表, https://developers.facebook.com/tools/explorer?method=GET&path=me/friends?q=Philip

您可以简单地获取所有朋友的列表,
然后在用于打印结果的for循环中,您可以搜索用户名/或ID。

一个简单的例子:

FB.api('/me/friends/', function(response) {
    if (response) {
        for (var i=0, l=response.data.length; i<l; i++) {
            var friend = response.data[i];
            if(friend.name === 'Philip') {
                alert('Philip Found!');
            }
        }
    }
});

答案 1 :(得分:1)

您可以使用FQL执行此操作:

SELECT uid, username, first_name, last_name FROM user WHERE uid IN
  (SELECT uid2 FROM friend WHERE uid1 = me()) AND first_name = 'tim'

虽然没有明确的通配符搜索,但不支持LIKE运算符。但你可以使用strpos函数伪造它。