Получить фотографии из таблицы фотографий, которые понравились текущему пользователю, используя FQL - PullRequest
1 голос
/ 21 марта 2012

Я пытаюсь получить фотографии из таблицы фотографий, но только те, которые понравились пользователю.

В таблице фотографий есть поле с именем like_info, которое возвращает объект с 3 полями, одно из которых user_likes: указывает, понравился ли текущему пользователю сеанса эта фотография (все, что мне нужно). https://developers.facebook.com/docs/reference/fql/photo/

Я могу получить эту информацию (like_info-> user_likes), но я не могу использовать ее внутри запроса. Я пробовал

SELECT pid, owner, src, like_info FROM photo WHERE pid IN (433368913233690121,433368913233456540) AND like_info.user_likes=1

, которая выдает мне ошибку "user_likes не является членом скаляра like_info".

Я знаю, что это сработало бы, если like_info был массивом, но я бы хотел знать, как это сделать в этом случае, будучи объектом.

Спасибо

Ответы [ 2 ]

2 голосов
/ 21 марта 2012

Первое, что мне пришло в голову, это просто вложение запросов из таблиц like и photo:

SELECT pid, owner, src, like_info FROM photo WHERE pid IN (
  SELECT object_id FROM like WHERE user_id=me() AND object_type="photo"
)

К сожалению, я обнаружил ошибку ( FQL-результаты из like таблицы неверны object_type), из-за которой выполнение вышеуказанного запроса бесполезно (будем надеяться, что это будет быстро устранено).

К счастью, есть другой способ достижения тех же результатов с помощью другого (немного более сложного) запроса:

SELECT pid, owner, src, like_info FROM photo WHERE object_id IN (
  SELECT id FROM object_url WHERE id IN (
    SELECT object_id FROM like WHERE user_id=me()
  ) AND type='photo'
)
0 голосов
/ 21 марта 2012

Возможно, вам повезет больше с таблицей , как .

SELECT object_id FROM like WHERE user_id=me() AND object_type="photo"
...