查询Facebook用户';通过graph API访问好友

查询Facebook用户';通过graph API访问好友,facebook,facebook-graph-api,Facebook,Facebook Graph Api,我正在尝试在iOS应用程序中实现一个搜索栏,它可以搜索用户的好友并显示结果。我不想让所有用户都使用并搜索结果。是否可以向此类调用(例如)添加查询?使用graph API的搜索功能似乎只是公开搜索。正如您在graph API浏览器中看到的,您无法通过graph API搜索好友列表, 您可以简单地获得所有好友的列表, 然后在用于打印结果的for循环中,您可以搜索用户名/或id 一个简单的例子: FB.api('/me/friends/', function(response) { if (

我正在尝试在iOS应用程序中实现一个搜索栏,它可以搜索用户的好友并显示结果。我不想让所有用户都使用并搜索结果。是否可以向此类调用(例如)添加查询?使用graph API的搜索功能似乎只是公开搜索。

正如您在graph API浏览器中看到的,您无法通过graph API搜索好友列表,

您可以简单地获得所有好友的列表,
然后在用于打印结果的
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!');
            }
        }
    }
});
FB.api('/me/friends/',函数(响应){
如果(答复){

对于(var i=0,l=response.data.length;i您可以使用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
函数来假装。是否可以在iOS sdk中使用FQL?我不知道该sdk中是否有特殊的方法来执行FQL查询–但您可以始终根据“正常”图形API设置FQL查询endpoint,graph.facebook.com/fql?q=您的_查询(记住在将其作为参数传递时对其进行url编码)。请参阅使用graph API浏览器的示例,'