Ответ 1
Теперь можно сделать это с помощью одного запроса API Graph:
GET https://graph.facebook.com/me/friends?limit=50&fields=name,namespace:testaction.limit(100)
Я хотел бы сделать что-то вроде 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" }
]
Это довольно неэффективно и не полностью разрешает мою проблему, поскольку:
Вы видите лучший способ сделать это?
Теперь можно сделать это с помощью одного запроса API Graph:
GET https://graph.facebook.com/me/friends?limit=50&fields=name,namespace:testaction.limit(100)
Это, вероятно, не совсем то, что вы ищете, но учитывая тот факт, что facebook (AFAIK) не предоставляет (и, вероятно, никогда не предоставит) возможности сделать это. Я думаю, вы должны просто хранить информацию самостоятельно, а затем запрашивать данные из своей собственной базы данных. Это будет похоже на то, что вы делаете в своем вопросе, но вы можете оптимизировать его, так как это ваша база данных.
Я уверен, что вы уже об этом подумали, но кто-то сказал это.
Если ответа, полученного с помощью derickito, недостаточно, вам следует изучить, как ваше приложение в белом списке Facebook (ака станет партнером), чтобы получить доступ к частному графическому API, где эта функция может существовать, но недоступна для "нормальное" приложение, которое застревает с помощью общедоступного Graph API.