Facebook FQL: идентификатор друзей - PullRequest
1 голос
/ 05 июля 2011

Я использую restfb 1.6.5 (та же проблема, что и в 1.6.4), и у меня проблемы с получением идентификаторов моих друзей. Это прекрасно работает (me-query):

User fbUserMe = fbClient.fetchObject("me", com.restfb.types.User.class);
logger.debug(fbUserMe.getId());

Тело ответа содержит что-то вроде: {"id":"1234","name":"ME" ...} и fbUserMe.getId() возвращает мой идентификатор. С помощью следующего фрагмента кода я хочу получить идентификаторы моих друзей (friends-query):

StringBuffer sb = new StringBuffer();
sb.append("SELECT uid, first_name, last_name FROM user");
sb.append(" WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())");

List<User> users = fbClient.executeQuery(sb.toString(), User.class);
for(User fbUser : users)
{
  logger.debug(fbUser.getId());
}

Но это всегда выводит null, хотя тело ответа содержит это: [{"uid":5678,"first_name":"Peter" ...} ...].

Очевидная разница в ответе: id=1234 для me-запроса и uid=5678 для запроса друзей. Если я использую пользовательский класс FqlUser, как описано в RestFB , я смогу получить uid . Теперь я не уверен в uid . Действительно ли я получаю такой же id (то же самое, что мой друг получит в me-Query), или я получаю что-то вроде third_party_id , описанного в Facebook: FQL-пользователь

1 Ответ

4 голосов
/ 19 июля 2011

Вы получаете UID.Тот же идентификатор, который ваш друг получит в запросе "me".

...