Профили VK (vk_channel)🔗
Назначение🔗
Приложение vk_channel содержит модель VkProfile, которая хранит параметры интеграции с социальной сетью VK. Интеграция позволяет принимать сообщения от пользователей написавшие в сообщения группы и отправлять им ответы от имени группы.
Приложение не обрабатывает сообщения напрямую. Вся бизнес-логика находится в микросервисе VK.
Основные модели и сущности🔗
VkProfile🔗
Наследуется от BaseProfile.
class VkProfile(BaseProfile):
group_id = models.CharField(...)
token = models.CharField(...)
return_string = models.CharField(...)
| Поле | Назначение |
|---|---|
group_id | ID группы ВКонтакте. Используется как идентификатор при входящих запросах |
token | API-токен группы. Получается в настройках сообщества |
return_string | Строка, которую необходимо вернуть при установке webhook'а |
group_idиспользуется в логике маршрутизации сообщений, а также служит уникальным идентификатором входящих сообщений.return_stringнужен только один раз — при первичной установке webhook. Юзер его получает когда настраивает вебхук в настройках группы
Связи и использование🔗
- Все поля используются только в микросервисе VK;
data_serviceпредоставляет доступ к данным для других сервисов.
Особенности🔗
- Приложение не содержит обработчиков входящих запросов;
- Не содержит API и не отвечает за бизнес-логику;
VkProfileсоздаётся вручную через админку или через фронт;group_idобязательно и должно быть уникальным;return_stringтребуется только на этапе подтверждения webhook;- Микросервис VK сам вызывает GPT и отправляет ответы пользователям;
- Все доступы к модели происходят через
data_service.
Админка🔗
- Поля из
BaseProfile+ специфичные (group_id,token,return_string); - Поле
serviceпри создании автоматически устанавливается какVK; - Удаление запрещено (
has_delete_permission = False); - Доступна фильтрация по активности, пользователю, ID группы и имени;
API🔗
Общая информация🔗
Приложение не предоставляет API.
- Все взаимодействия с ВКонтакте реализованы в
vk_service; - Запросы к данным идут через
data_service; - Фронтенд может получать данные из
data_service; - Входящие и исходящие сообщения не обрабатываются здесь.