Можно получить список друзей аутентифицируемого пользователя с:
https://graph.facebook.com/me/friends
У кого-либо есть какая-либо идея, как заказать список именем пользователя? Поскольку это не делает по умолчанию. В документации нет ничего.
Придумал решение. В конце концов, мы, вероятно, сможем упорядочить результаты графиков. Пока я просто делаю это (javascript). Предполагая, что я получил "fb_uid" из моего сеанса PHP:
var friends = FB.Data.query("SELECT name, uid FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1={0}) ORDER BY name", parseInt(fb_uid));
friends.wait(function(rows){
console.log(rows);
});
Я думаю, что весь OpenGraph API все еще находится на переходном этапе от FB Connect. В любом случае, я бы просто сделал старый добрый запрос order-by в FQL, который вы все еще можете использовать. Я не думаю, что это будет слишком сложно изменить, когда способ выполнения этого запроса в OpenGraph станет общепринятым.
Этот очень хороший учебник показывает, как это сделать:
http://thinkdiff.net/facebook/php-sdk-graph-api-base-facebook-connect-tutorial/
$fql = "select name, hometown_location, sex, pic_square from user where uid=xxxxxxxxxxxxxxx";
$param = array(
'method' => 'fql.query',
'query' => $fql,
'callback' => ''
);
$fqlResult = $facebook->api($param);
В чем проблема, если вы делаете это на стороне вызывающего абонента. Это означает, что после того, как вы получите всех друзей из этого графического API, вы можете поместить их всех в отсортированную структуру данных, а затем отобразить их всех :)
мы делаем это в нескольких приложениях. просто сортируя в javascript.
function sortByName(a, b) {
var x = a.name.toLowerCase();
var y = b.name.toLowerCase();
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}
var _friend_data = null
function lazy_load_friend_data(uid) {
if (_friend_data == null) {
FB.api('/me/friends', function(response) {
_friend_data = response.data.sort(sortByName);
}
)
}
}