Подтвердить что ты не робот

Получить список друзей, которые выполнили настраиваемое действие для настраиваемого объекта в открытом графике 2

Я хотел бы сделать что-то вроде 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, я должен пройти пейджинг, делать больше запросов (я пытаюсь свести к минимуму количество запросов)

Вы видите лучший способ сделать это?

4b9b3361

Ответ 2

Это, вероятно, не совсем то, что вы ищете, но учитывая тот факт, что facebook (AFAIK) не предоставляет (и, вероятно, никогда не предоставит) возможности сделать это. Я думаю, вы должны просто хранить информацию самостоятельно, а затем запрашивать данные из своей собственной базы данных. Это будет похоже на то, что вы делаете в своем вопросе, но вы можете оптимизировать его, так как это ваша база данных.

Я уверен, что вы уже об этом подумали, но кто-то сказал это.

Ответ 3

Если ответа, полученного с помощью derickito, недостаточно, вам следует изучить, как ваше приложение в белом списке Facebook (ака станет партнером), чтобы получить доступ к частному графическому API, где эта функция может существовать, но недоступна для "нормальное" приложение, которое застревает с помощью общедоступного Graph API.