我使用以下代码从Facebook获取了朋友列表:
$session = $facebook->getSession();
if ($session) {
$uid = $facebook->getUser();
$friends = $facebook->api('/me/friends');
}
foreach ($friends as $key=>$value) {
echo count($value) . ' Friends';
echo '<hr />';
echo '<ul id="friends">';
foreach ($value as $fkey=>$fvalue) {
echo '<li><img src="https://graph.facebook.com/' . $fvalue->id . '/picture" title="' . $fvalue->name . '"/></li>';
}
echo '</ul>';
}
我有一个查询,我使用此 API 从 facebook 获取了朋友列表,但我有一个输入框,我在其中输入了 john
然后这个朋友列表应该包含名称为"jhon"的朋友列表。如何在现有代码中实现此功能?
谢谢
我所做的是将朋友姓名和user_ids存储在一个表中,并在全新登录时更新表。因此,从那里我们可以创建一个通过 ajax 命中的自动完成端点。
SELECT * FROM `user_contacts`
WHERE `name` LIKE "%{$name}%" AND `user_id` = "{$user_id}"
LIMIT 5
我们获取此查询的结果并json_encode它,我们可以将这些数据直接传递到 jquery ui 自动完成中。
http://jqueryui.com/demos/autocomplete/
似乎效果很好,但是user_contacts桌子可以相对快速地填满,具体取决于您拥有多少Facebook用户。我不是100%使用Facebook的条款和条件来存储这些数据,所以值得研究。
获取函数in_array
,您可以传递数组和您搜索的字符串。
这是一个项目,它做了一些我认为你所追求的事情:http://www.devthought.com/2008/01/12/textboxlist-meets-autocompletion/
如果我没记错的话,这在Mootools和jQuery版本中都可用。