Что умеет каждый токен VK API в 2026 году
Документация ВКонтакте и его схема API местами расходятся с тем, что API отвечает на самом деле. Ниже — не пересказ документации, а результаты вызовов на живом сообществе в октябре 2026 года, токеном сообщества со всеми правами.
Коротко
| Токен | Работает | Не работает |
|---|---|---|
Токен сообщества (vk1.a…, из настроек сообщества) |
Пост на стену сообщества, комментарий, истории (публикация и удаление), сообщения сообщества (диалоги, история, отправка, отметка о прочтении), профили, информация о сообществах, включение разделов сообщества | Чтение стены, правка и удаление постов, загрузка фото на стену, альбомы, статистика, лайки, поиск, лента новостей |
| Сервисный ключ (из настроек приложения) | Чтение публичных профилей, стен, информации о сообществах, открытых списков участников | Любая запись; поиск, лайки, фото, посты по ID |
VK ID (vk2.a…, вход через id.vk.com) |
То же публичное чтение, что у сервисного ключа | Публикация, фото, друзья, лента, статистика — ошибка 1051 при любых правах |
Полный пользовательский токен, который всё это умел, ВКонтакте новым приложениям больше не выдаёт: вход через
VK ID даёт токен для входа, а не для API, а старый oauth.vk.com для приложений, созданных на
id.vk.com, отвечает «Security Error».
Расхождения со схемой API
В официальной схеме VKCOM/vk-api-schema у каждого метода указано, какие токены его вызывают. Схеме нельзя верить без проверки:
wall.postпо схеме — только пользовательский токен. На деле токен сообщества публикует пост на стене своего сообщества.photos.getпо схеме доступен сервисному ключу. На деле — ошибка 1051.
Почему от имени сообщества нельзя опубликовать пост с фото
Чтобы прикрепить фото к посту, его нужно загрузить в альбом стены (photos.getWallUploadServer →
photos.saveWallPhoto) — токену сообщества это закрыто. Мы проверили обходные пути:
- Фото, загруженное для сообщений (
photos.getMessagesUploadServer, это токену сообщества доступно). Пост с таким вложением публикуется, но ВКонтакте молча выбрасывает фото — ошибки нет, вложений у поста ноль. - Картинка документом (
docs.getWallUploadServer; раздел «Документы» тот же токен включает черезgroups.edit docs=1). Прикрепляется, но в ленте видна ссылкой на файл, а не изображением. - Ссылка с картинкой-превью. Вложение-ссылка без фото — ошибка 100
Violated: link_photo_sizing_rule. No photo given; ссылка в тексте поста превью через API не получает.
Если вы знаете рабочий способ — напишите в issues, проверим и добавим.
Что значат ошибки
| Ошибка | Что значит |
|---|---|
27 Group authorization failed: method is unavailable with group auth |
Метод закрыт для токена сообщества (например, чтение стены). Для чтения нужен сервисный ключ. |
1051 Method is not available for this profile type |
Метод закрыт для этого вида токена — так отвечают и VK ID, и сервисный ключ. Права (scope) тут не помогут. |
28 Application authorization failed |
Сервисному ключу метод недоступен. |
5 с subcode 1130 |
Токен привязан к IP, с которого его получили, а запрос идёт с другого. Токен сообщества не привязан. |
901 Can't send messages for users without permission |
Человек не писал сообществу и не разрешал сообщения от него. |
15 Access denied |
Данные скрыты: закрытый профиль, сообщество скрывает участников или раздел выключен. |
Как это обходит VK MCP Server
Сервер принимает два токена сразу: токен сообщества (VK_ACCESS_TOKEN) и сервисный ключ
(VK_SERVICE_KEY). Каждый запрос сначала идёт с токеном сообщества; если ВКонтакте отказывает именно
из-за вида токена (ошибки 27 и 1051), тот же запрос повторяется сервисным ключом. Запись на ключ не уходит
никогда: отказ по виду токена значит, что ВКонтакте ничего не выполнил. Команда
npx vk-mcp-server --check показывает, что умеют ваши токены.