Перейти к содержанию

Профили 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;
  • Входящие и исходящие сообщения не обрабатываются здесь.