Как получить информацию о пользователе и большое изображение

Для приложения Android я пытаюсь получить некоторую информацию о конкретном пользователе (используя его идентификатор пользователя) на Facebook, используя FQL, а также получить высококачественное изображение пользователя.

Это означает, что я должен использовать таблицу "user" и таблицу "photo".

В настоящее время запросы:

SELECT first_name, last_name, status, current_location, uid, pic_square, pic_big, website, work, email, contact_email, current_location, sex, birthday_date 
FROM user 
WHERE uid in (%s) order by name

SELECT src_big,owner 
FROM photo 
WHERE aid IN (SELECT aid FROM album WHERE owner=%s AND type=\"profile\") LIMIT 1

Первый возвращает всю информацию о указанных пользователях, а второй возвращает src_big одного пользователя. Можно ли сделать внутреннее соединение и сделать их оба в одном запросе?

РЕДАКТИРОВАТЬ:

Кажется, что внутреннее объединение все еще невозможно для FQL. Тем не менее, я все еще хочу спросить кое-что об этом: как я могу изменить второй оператор FQL, чтобы показать несколько результатов, как используется в первом операторе FQL?

2 ответа

Решение

Да, мультизапрос FQL не дает вам возможности выбрать один элемент на пользователя в результате. Ваш второй запрос даст вам только один элемент. Вам нужно будет получить все фотографии от всех пользователей в FQL, а затем отфильтровать их в своем приложении или сделать отдельный вызов API для каждого пользователя.

Вы можете сделать это с помощью Graph API, используя расширение поля. Ваша конечная точка запроса будет:

 /?ids=UID_1,UID_2,...,UID_n&fields=name,id,...,photo.limit(1)

Поскольку вы используете fields Параметр, вам нужно будет индивидуально объявить каждое поле, которое вы хотите в вашем результате.

Конечно, вы можете объединить две таблицы, используя user.uid = photo.owner(если правильно) в качестве условия связывания.

Другие вопросы по тегам