Сценарий из mcp-everything. Актуально на 2026-10-24.
Автопостинг: новости, акции, новые товары — на стену сообщества от его имени.
UPLOAD=$(curl -s https://api.vk.ru/method/photos.getWallUploadServer -H "Authorization: Bearer $VK_USER_TOKEN" \
-d group_id=123456 -d v=5.199 | jq -r .response.upload_url)
R=$(curl -s -F "photo=@promo.jpg" "$UPLOAD")
SAVED=$(curl -s https://api.vk.ru/method/photos.saveWallPhoto -H "Authorization: Bearer $VK_USER_TOKEN" \
-d group_id=123456 -d v=5.199 \
--data-urlencode "photo=$(echo "$R" | jq -r .photo)" -d "server=$(echo "$R" | jq -r .server)" -d "hash=$(echo "$R" | jq -r .hash)")
curl https://api.vk.ru/method/wall.post -H "Authorization: Bearer $VK_USER_TOKEN" \
-d owner_id=-123456 -d from_group=1 -d v=5.199 \
--data-urlencode 'message=Скидка 20% на всё до воскресенья!' \
-d "attachments=photo$(echo "$SAVED" | jq -r '.response[0].owner_id')_$(echo "$SAVED" | jq -r '.response[0].id')"
https://api.vk.ruhttps://api.vk.ru/method/<имя-API-метода>Тип: Bearer-токен
Ключ доступа передаётся в каждом запросе в заголовке Authorization: Bearer <КЛЮЧ_ДОСТУПА>. Тип ключа указан у каждого метода: ключ пользователя, ключ сообщества или сервисный ключ приложения.
Ответ:
curl 'https://api.vk.ru/method/users.get' \
-H 'Authorization: Bearer <КЛЮЧ_ДОСТУПА>' \
-F 'user_ids=743784474' \
-F 'fields=bdate' \
-F 'v=5.131'
Ключ: пользователя. Также публикует предложенные и отложенные записи.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
v |
body | string | да | Версия API |
owner_id |
body | integer | нет | ID пользователя или сообщества (со знаком минус) |
message |
body | string | нет | Текст записи; обязателен, если нет attachments |
attachments |
body | array | нет | Вложения |
from_group |
body | boolean | нет | 1 — публикация от имени сообщества |
signed |
body | boolean | нет | Подписать запись именем автора (для from_group=1) |
publish_date |
body | integer | нет | Дата отложенной публикации, Unix time |
friends_only |
body | boolean | нет | Только для друзей |
post_id |
body | integer | нет | ID отложенной или предложенной записи для публикации |
mark_as_ads |
body | boolean | нет | Пометить как рекламу |
close_comments |
body | boolean | нет | Закрыть комментарии |
Ключ: пользователя. Дальше файл загружается на полученный адрес, затем сохраняется методом photos.saveWallPhoto.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
v |
body | string | да | Версия API |
group_id |
body | integer | нет | ID сообщества, на стену которого загружается фото |
Ключ: пользователя.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
v |
body | string | да | Версия API |
photo |
body | string | да | Значение photo из ответа сервера загрузки |
server |
body | integer | нет | Значение server из ответа сервера загрузки |
hash |
body | string | нет | Значение hash из ответа сервера загрузки |
user_id |
body | integer | нет | ID пользователя-владельца стены |
group_id |
body | integer | нет | ID сообщества-владельца стены |
caption |
body | string | нет | Описание фото, до 2048 символов |
v — версия API. В документации указана актуальная версия 5.131, а официальная JSON-схема методов VK описывает версию 5.199.application/x-www-form-urlencoded или multipart/form-data (для файлов и данных больше 2 КБ); application/json не поддерживается.lang (ru, uk, be, en, es, fi, de, it) и test_mode=1.owner_id передаётся со знаком минус.Если этого недостаточно — официальная документация: https://dev.vk.com/ru/api/api-requests Вся интеграция одним документом: https://mcp-everything.ru/integrations/vk-api.md