Как я заказываю друзьям список, возвращенный из нового Графика Facebook API?

Можно получить список друзей аутентифицируемого пользователя с:

https://graph.facebook.com/me/friends

У кого-либо есть какая-либо идея, как заказать список именем пользователя? Поскольку это не делает по умолчанию. В документации нет ничего.

9
задан typeoneerror 19 May 2010 в 01:26
поделиться

4 ответа

Придумал решение. В конце концов, мы, вероятно, сможем упорядочить результаты графиков. Пока я просто делаю это (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);
});
5
ответ дан 4 December 2019 в 08:14
поделиться

Я думаю, что весь 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);
3
ответ дан 4 December 2019 в 08:14
поделиться

В чем проблема, если вы делаете это на стороне вызывающего абонента. Это означает, что после того, как вы получите всех друзей из этого графического API, вы можете поместить их всех в отсортированную структуру данных, а затем отобразить их всех :)

2
ответ дан 4 December 2019 в 08:14
поделиться

мы делаем это в нескольких приложениях. просто сортируя в 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);
      }
    )
  }
}
12
ответ дан 4 December 2019 в 08:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: