Сделать запрос:
https://graph.facebook.com/v2.11/{group-id}/members?limit=1500&access_token={token}
(заменить {group-id}
по цифровой идентификации группы и {token}
на ваш маркер доступа).
Вы получите ответ, как это:
{
"data": [
{
"name": "Foo bar",
"id": "123456",
"administrator": false
},
...
],
"paging": {
"cursors": {
"before": "QVFIUkwzT3FKY0JSS2hENU1NUlZAocm9GelJMcUE3S1cxWWZAPYWx1cUQxcXFHQUNGLUJnWnZAHa0tIdmpMT0U5ZAjRBLUY5Q2ZAGbmwwVTNoSHhLc1BCc2dvVTF3",
"after": "QVFIUkFoU3lYR2tXc09adkg5OGhlbHRWRk1GYkZAzQU1DalRSY05zOVl5aE1tcjRMS3lXLURaVWNMOGZArWTVxS2hPQUVGVWxhbXZAyZA0p3azVKM2hBSEp3YlpR"
}
},
"next": "https://graph.facebook.com/v2.11/123928391023981/members?access_token=EAACEdEose0cBALBDrdgLyVOjzW4mz6G3d3Yj1fTGYqygVgYq0JCDZAi0zYsY90pSSQ9hQZCn3TdwfXIAiyoXH5oUYcA4hOcCI9jztkkUhbBv9tEQ3ZBEEuHpmkm3kmgvk1HNq5mo6BM0hz8XkOLVh3twIdz83KhB9SkqxuxHeFD9GWsQqjys6XTuL2315QZD&pretty=0&limit= 1500&after=QVFIUkFoU3lYR2tXc08adkg5OGhlbHRWYk1GYkZAzQU1DalRSY05zOVl5aQ1tcjRMS3lXLURaVWNMOGZArWTVxS2hPQUVGVWxhbXZAyZA0p3azVKM1hBSEp3YlpR"
}
Далее следуют этому алгоритму:
- Сделать
count
переменную со значением 0
.
- Подсчитайте объекты в массиве
data
из последнего ответа и добавьте счет в переменную count
.
- Если последний ответ имеет свойство
next
, сделайте запрос на URL-адрес, который является значением свойства next
, и вернитесь к шагу 2. В противном случае вы закончите, количество членов будет значением переменной count
.
Этот способ не очень хорош, потому что чем больше членов группы в группе, тем больше запросов требуется. Я бы лучше проанализировать количество участников из HTML-страницы группы, но я не могу найти надежный способ сделать это.
Обновление 2017.10.19: Если размер ответа API для Facebook составляет более примерно 345 КБ, Facebook возвращает ошибку: Please reduce the amount of data you're asking for, then retry your request
. Это около 1997 года. Поэтому вам необходимо установить параметр запроса limit
на 1500, чтобы он не сталкивался с ошибкой.
Обновление 2018.01.26: Существует способ, чтобы получить количество членов с помощью одного запроса: https://stackoverflow.com/a/47783306/1118709
Update 2018.01.31: После 90 дней от рилизинг Graph API v2.12 запрос требует маркер доступа админа группы. Источник: Graph API docs/v2.12 changelog/90-day breaking changes
Это настоящий материал API-gangsta. Спасибо! – Finesse
Вы также можете сделать запрос '/v2.11/ {GROUP_ID}/members? Limit = 0 & summary = true' и получить счет из' (данные ответа) .summary.total_count' – Finesse
После 90 дней с момента выпуска Graph API v2 .12 для всех вышеуказанных запросов потребуется токен доступа администратора группы: https://developers.facebook.com/docs/graph-api/changelog/version2.12 – Finesse