Возможно ли / как узнать количество конкретных участников группы Facebook (даже если их больше 500)?

Мне нужно отслеживать количество пользователей группы facebook и отображать его на сайте. Я знаю, что можно получить идентификаторы пользователей с помощью их API, но они ограничены только 500 (если общее количество участников составляет 500+).

Каким будет самый простой способ получить общее количество участников, которые подписались в группу Facebook, которую я создал? Это вообще возможно?

Мадарко, не могли бы вы выразиться более откровенно, разместив весь код, пожалуйста?

user1025495 09.05.2012 19:52
Почему Facebook остановился на PHP
Почему Facebook остановился на PHP
PHP имеет долгую историю с Facebook, и это был основной язык программирования, использовавшийся для создания сайта в первые годы его существования....
2
1
3 387
3

Ответы 3

Если вы пишете http-бота, его не должно быть очень сложно выбросить, учитывая, что производительность в реальном времени не является ключевым фактором.

Согласно документации для Groups.getMembers невозможно получить> 500 членов группы с помощью вызова API. Хуже того, вы, кажется, сможете получить только 500 членов случайный.

Возможно, вы захотите вместо этого рассмотреть возможность использования Facebook Connect со своим сайтом. Я не эксперт по Connect, но я считаю, что у вас не возникнет этой проблемы с его использованием, поскольку вы на самом деле пишете код для Facebook - похоже, нет смысла ограничивать результаты. По крайней мере, в этом направлении я бы посмотрел.

Удачи.

Вы можете сделать это с помощью FQL-запроса следующим образом:

SELECT uid FROM group_member WHERE gid = <group_id> limit 500
SELECT uid FROM group_member WHERE gid = <group_id> limit 500 offset 500
SELECT uid FROM group_member WHERE gid = <group_id> limit 500 offset 1000
...

Получить количество участников

Сделайте это внутри цикла (пока не получите 0 результатов), и вы получите общее количество участников группы.

    perPage = 500
    for count in range(100):
        res = fql('SELECT uid FROM group_member WHERE gid = %s limit %d offset %d' % (fbUserId, perPage, perPage * count))
        if len(res) == 0:
            break
        friends += len(res)

Получить подробную информацию о членах

Вы даже можете присоединиться к пользовательской таблице FQL, чтобы получить всю информацию о пользователе:

SELECT uid, name, pic_square FROM user WHERE uid IN ( 
         SELECT uid FROM group_member WHERE gid = <group_id> limit 500 offset %d )

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