Для публикации в VK пользователь должен пройти OAuth-флоу, выбрать доступное сообщество и создать цель публикации.
Какой должен быть пользовательский сценарий
Обычный пользователь не должен вручную получать access token через кабинет разработчика. Правильный UX — кнопка подключения VK в CDP, переход на OAuth, выбор сообщества и возврат в CDP со статусом подключения.
[ТУТ СКРИНШОТ: экран подключения VK с кнопкой авторизации и выбором сообщества]
Порядок действий
- Откройте проект → автопостинг → подключения.
- Нажмите подключение VK.
- Пройдите авторизацию VK.
- Разрешите доступ к нужному сообществу.
- Вернитесь в CDP.
- Выберите группу или страницу как target.
- Создайте тестовый пост.
Что хранит CDP
CDP должен хранить не открытый token, а шифрованные credentials и metadata подключения. Если token истёк или отозван, подключение должно перейти в NEED_REAUTH и показать пользователю понятную инструкцию.
Ошибки
- NEED_REAUTH — пользователь должен заново пройти OAuth;
- PERMISSION_DENIED — у пользователя нет прав на сообщество;
- CONTENT_VALIDATION_FAILED — текст, медиа или вложения не подходят для VK;
- PAYMENT_REQUIRED — автопостинг заблокирован тарифом.
Перед отправкой сервис должен валидировать:
- длину текста
- наличие медиа
- тип размещения: wall / clips / stories
- доступность target
- права accountКонтрольный чек-лист
- Проверьте, что вы находитесь в правильном проекте, а не в соседнем тестовом проекте.
- Проверьте роль пользователя: часть кнопок видна только администратору.
- Откройте DevTools → Network и найдите запрос к
/v1/.... - Скопируйте точный текст ошибки, HTTP-статус и время возникновения.
- Если операция связана с лимитом, откройте страницу лимитов до повторного запуска.
Что приложить к задаче разработчику
Чтобы проблему можно было быстро воспроизвести, приложите URL страницы, projectUuid, время ошибки, скриншот интерфейса, скриншот Network-запроса и архив логов. Для ошибок bootstrap отдельно проверьте, были ли в gateway.log не только GET, но и POST/PUT запросы.
[ТУТ СКРИНШОТ: Network-запрос с route, HTTP-статусом и response body]
