Я хотел бы сделать что-то вроде facepile, используя график api с открытыми действиями на графике 2: из пользовательского объекта и настраиваемого объекта дайте мне друзей (используя мое приложение facebook), которые выполнили это действие на этом объекте.
Проблема заключается в том, что с использованием FQL я не могу запрашивать пользовательские объекты и действия. Используя API-интерфейс графика, я не могу найти способ пересечения списка моих друзей с объектом, который меня интересует.
Лучшее, что я мог сделать, это использовать пакетный режим API-интерфейса:
batch=[
// First we get the list of friends that are using my facebook application
{ "method": "GET", "relative_url": "fql?q=SELECT+uid+FROM+user+WHERE+uid+IN+(SELECT+uid1+FROM+friend+WHERE+uid2=me())+AND+is_app_user=1+LIMIT+0,49", "name": "friends"},
// Then query each friend to get the list of objects that went through my namespace:testaction
{ "method": "GET", "relative_url": "{result=friends:$.data.0.uid}/namespace:testaction" },
{ "method": "GET", "relative_url": "{result=friends:$.data.1.uid}/namespace:testaction" },
...
{ "method": "GET", "relative_url": "{result=friends:$.data.49.uid}/namespace:testaction" }
]
Это довольно неэффективно и не полностью разрешает мою проблему, поскольку:
- Мне еще нужно отфильтровать результаты, чтобы получить только тот, который соответствует объект, который я хочу
- Если в пространстве имен существует большое количество объектов: testaction, я должен пройти пейджинг, делать больше запросов (я пытаюсь свести к минимуму количество запросов)
Вы видите лучший способ сделать это?