---
name: ceberspost_vk_autopost
description: CebersPost постит в VK (сообщество КодоЦех) по одобрению; как устроен адаптер и хард-вон правда про VK-токены 2026
metadata: 
  node_type: memory
  type: project
  originSessionId: b11e39bd-4f6f-47c9-ba7b-680ccf041a5b
---

CebersPost умеет автопостинг в **VK** (с 2026-06-29, commit `e579daf`) — расширение [[ceberspost_overview]].

- **Сообщество:** КодоЦех, vk.com/codoceh, group_id **239942889**. Зонтичное — постим туда всё, с пометкой продукта.
- **Адаптер `cebers_post/vk.py`:** `publish_to_vk(message, token, group_id)` → `wall.post`. `compose_vk_text(body, project)` добавляет в подвал пометку ресурса (продукт+ссылка+хэштег) из `RESOURCES` по `draft.project`. По ✅ в `bot.py:approve_draft` пост идёт и в Telegram, и в VK (VK в своём try/except — сбой не валит TG).
- **Токен:** community-токен сообщества, хранится вне репо в `~/.codoceh_vk_group.env` (600); `config.settings.vk_group_token/vk_group_id/vk_enabled`.

**ВАЖНО — правда про VK-токены 2026 (чтобы не ходить по кругу):**
- Community-токен умеет ТОЛЬКО `wall.post`. `wall.edit`/`wall.delete`/`photos.*` → **error 27** (нельзя править, удалять, грузить фото на стену). Тестовые посты убирать только руками. Одобрение строго ДО публикации.
- `wall.post` с `attachments`=URL → **error 100** (VK не тянет наш OG; вероятно edge-Caddy анти-DDoS режет краулер VK). Поэтому постим текстом, ссылку — текстом в подвале. OG-карточки в VK нет (опц. фикс — вайтлист UA краулера VK на edge).
- Получить токен: старый implicit (`response_type=token`) → **Security Error** (закрыт). VK ID code-флоу (id.vk.com, PKCE) даёт только scope `vkid.personal_info` → API стены недоступно (**error 1051**). Рабочий путь — **community-токен** из Управление→Настройки→«Работа с API»→Ключи доступа (в новом UI пункт спрятан, но есть на десктопе).
- App для VK ID (на всякий): «CodoCeh Poster» client_id **54658801**, domain/redirect codoceh.ru — НЕ дал рабочий API-токен, оставлен.

Расширять на VK других каналов / Дзен — добавить адаптер по образцу `vk.py`. Дзен — только RSS-импорт (push-API нет).
