Laravel Vk Requester
Репозиторий: laravelrus/laravel-vk-requester
Статус: Архивный
Описание
Laravel-пакет для автоматизации работы с VK API через систему очередей. Создавался для проектов, где нужно было выполнять много взаимосвязанных запросов к ВКонтакте - получить данные, обработать их, на основе результатов сделать новые запросы, и так далее.
Задача
Когда работаешь с VK API в больших объемах, сталкиваешься с несколькими проблемами:
- Rate-limits: VK ограничивает количество и частоту запросов. Превысишь лимит - получишь бан.
- Сложные цепочки: Часто нужно сделать запрос, получить данные, на их основе сделать еще несколько запросов, потом еще... И так по цепочке.
- Синхронное выполнение: Если делать все запросы синхронно в веб-запросе - пользователь будет ждать вечность.
Решение
Пакет решает эти проблемы через комбинацию нескольких подходов:
Фоновое выполнение через очереди Laravel:
- Все запросы выполняются в фоне, не блокируя основное приложение
- Можно обрабатывать множество запросов параллельно
Защита от rate-limits:
- Автоматически группирует запросы в execute-запросы (по 25 штук в каждом)
- Это в разы ускоряет выполнение и снижает вероятность превышения лимитов
Динамические цепочки через события:
- На каждый ответ от API генерируется событие
- В обработчике события можно добавить новые запросы в очередь
- Так выстраиваются цепочки любой сложности
Пример цепочки:
Получить группы по ID (groups.getByIds)
└─> Для каждой группы получить участников (groups.getMembers)
└─> Каждого участника добавить в друзья (friends.add)
└─> Для каждой группы получить посты (wall.get)
└─> Для каждого поста получить комментарии (wall.getComments)
Система тегов и контекста:
- Можно помечать запросы тегами для удобной обработки
- Можно передавать дополнительные данные через атрибут context
Использование
Пакет использовался в проекте WantUs и нескольких других моих проектах. Сейчас переведен сообществом в статус архивного - возможно, появились более современные решения, или просто изменились требования VK API.
Технологический стек
- Laravel - основной фреймворк
- PHP - язык разработки
- Vk_Client - используется внутри для выполнения запросов к VK API
- VK API (REST_API) - работа с социальной сетью ВКонтакте
Связанные проекты