CrazyKing
@CrazyKing

Как посредством API ВКонтакте получить больше 5000 друзей методом friends.get()?

Пытаюсь получить список друзей у пользователя по средствам PHP, кол-во друзей больше 9 тысяч, в API VK у метода "friends.get" есть ограничения на получение всего 5000.
Изначально пробовал получить таким образом:
$token = "XXXXXX"; //токен
$friends_get = api ('https://api.vk.com/method/friends.get?order=name&fields=name&name_case=ins&v=5.28&access_token='.$token);
$count = $friends_get['count']; // получаем массив пользователей
for ($i=0; $i < $count; $i++) { 
$banned = $friends_get ['items'][$i]['deactivated'];//Выбираем пользователей со статусом 'deactivated'
$id = $friends_get ['items'][$i]['id']; //получаем список ID пользователей
if ($banned == banned){ //проверяем, если страница заблокирована

Затем загонял всё это дело в массив и перебирал циклом, что бы отобрать только заблокированных, не суть..
Проблема возникла в том, что друзей больше чем 5 тысяч и я не могу понять как забрать оставшихся.

Пробовал такой запрос:
$members = json_decode(file_get_contents("https://api.vk.com/method/friends.get?user_id=436764&offset=9000&fields=name"),true);


Добавил "offset=" и вроде удалось вынуть другую часть, но не могу понять как их совместить с предыдущими пятью тысячами, или как этот запрос выполнить несколько раз и всё собрать воедино.
  • Вопрос задан
  • 1548 просмотров
Пригласить эксперта
Ответы на вопрос 2
sergiks
@sergiks Куратор тега PHP
♬♬
Сделайте в цикле. С каждым разом увеличивайте offset на 5000 пока он не окажется больше возвращённого в поле count полного числа друзей. Не забывайте про лимит в 3 запроса в секунду.

Можно ещё заморочиться и запихать весь код в execute(), тогда из PHP последует единственный запрос, а цикл прокрутится на сторон ВК.
Ответ написан
@vshvydky
ваозьми модуль vk-io там есть свое апи над вк, позволяет за пару строк собирать потоки данных
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы