1. Пользовательский токен (через VK ID)
Важно: С 2024-2025 годов standalone-приложения больше не создаются. Вместо них используется тип приложения «Web-сайт», а токен получается через Implicit Flow или сервисы-генераторы.
Шаг 1. Создайте приложение VK (если его нет)
Перейдите в раздел управления приложениями:
https://vk.com/apps?act=manage
Нажмите «Создать приложение», выберите тип «Web-сайт» (Standalone больше не доступен для новых приложений).
Шаг 2. Сгенерируйте токен пользователя (простой способ)
Я использую самый простой способ — через специальный сервис-генератор. Он использует официальную авторизацию VK ID, безопасен и не хранит токены.
Откройте в браузере: https://vkhost.github.io
В списке приложений выберите любое доверенное, например Kate Mobile (или ваше собственное, если оно появилось).
Отметьте нужные разрешения (например: wall, groups, photos, market, offline).
Нажмите кнопку авторизации, войдите в свой аккаунт VK и подтвердите доступ.
Готово! Вы получите access_token прямо на странице.
Скопируйте его — строка начинается с vk1.a.
Альтернативный способ (Implicit Flow через URL)
Если вы предпочитаете прямую ссылку (подходит для уже созданных standalone-приложений или некоторых web-приложений):
https://oauth.vk.com/authorize?client_id=ВАШ_APP_ID&scope=wall,photos,market,offline&redirect_uri=https://oauth.vk.com/blank.html&display=page&response_type=token
После авторизации токен будет в адресной строке:
https://oauth.vk.com/blank.html#access_token=vk1.a.XXX&expires_in=86400&user_id=YYY
Осторожно: Для новых приложений (типа «Web-сайт») метод прямой ссылки может не работать или возвращать ошибку Security Error. В таком случае используйте vkhost.github.io или реализуйте Authorization Code Flow на сервере.
Что важно знать про пользовательский токен
- expires_in=0 или 86400 — срок жизни. Параметр offline может давать долгоживущий токен.
- Токен позволяет читать стены (wall.get), работать с товарами (market), фото (photos), группами (groups) и т.д.
- Никогда не передавайте токен третьим лицам — он даёт доступ к вашему аккаунту.
- Отозвать токен можно в настройках VK: раздел «Приложения».
2. Токен сообщества (группы)
Токен сообщества нужен, чтобы бот действовал от имени группы: слушать события через VkLongPoll, публиковать посты, отвечать на комментарии.
Шаг 1. Зайдите в управление сообществом
Перейдите в ваше сообщество и откройте раздел:
Управление → Работа с API
Или по прямой ссылке (замените group_id на ID вашей группы):
https://vk.com/act=groups&act=settings&gid=ваш_id_группы
Шаг 2. Создайте ключ доступа
- Включите «Доступ к API» (если выключен).
- Нажмите «Создать ключ».
- Выберите необходимые права (например, «Управление сообществом», «Работа со стеной», «Доступ к комментариям»).
- Скопируйте полученный токен сообщества — это длинная строка, которую вы будете использовать в коде бота.
Подсказка: Токен сообщества нельзя получить через vkhost.github.io — он создаётся только внутри настроек сообщества.
Для чего используется токен сообщества
- VkLongPoll — прослушивание событий (новые посты, комментарии, лайки).
- Публикация записей от имени сообщества (wall.post).
- Редактирование информации о сообществе.
- Работа с кнопками и виджетами.
Важное различие: Обычные пользовательские токены (vk1.a.xxx) не работают с VkLongPoll. Для LongPoll нужен именно токен сообщества, созданный в разделе «Работа с API».
Сравнение: какой токен для чего нужен
| Тип токена | Где получить | Для чего использовать |
|---|---|---|
| Пользовательский (vk1.a.xxx) | vkhost.github.io или OAuth-ссылка | wall.get, photos, market, groups.get, поиск, лайки, комментарии от имени пользователя |
| Токен сообщества (групповой) | Управление сообществом → Работа с API | VkLongPoll, публикация от имени группы, управление сообществом, Callback API |
| Рекламный токен | Рекламный кабинет VK | ads.createAds, управление кампаниями, статистика |
Что изменилось по сравнению со старыми инструкциями
Старый способ (больше не работает для новых приложений):
https://oauth.vk.com/authorize?client_id=...&response_type=token
Прямая ссылка с redirect_uri=blank.html больше не возвращает токен для новых приложений из-за перехода на VK ID.
Что делать вместо этого:
- Использовать vkhost.github.io (рекомендовано для быстрых задач).
- Реализовать Authorization Code Flow на своём сервере (для production-проектов).
- Для ботов на сервере по-прежнему используется токен сообщества, его получение не изменилось.
Главное запомнить:
- Пользовательский токен (читает стены, фото, товары) → vkhost.github.io
- Токен для бота и LongPoll → настройки сообщества → Работа с API
Проверка токена (быстрый тест на Python)
Сохраните этот скрипт как test_token.py, вставьте ваш токен и ID сообщества, запустите:
import requests
TOKEN = "vk1.a.ВАШ_ТОКЕН"
COMMUNITY_ID = 123456789
url = "https://api.vk.com/method/wall.get"
params = {
"access_token": TOKEN,
"owner_id": -COMMUNITY_ID,
"count": 3,
"v": "5.131"
}
response = requests.get(url, params=params).json()
if "error" in response:
print("Ошибка:", response["error"]["error_msg"])
else:
posts = response["response"]["items"]
print(f"Успех! Получено {len(posts)} постов.")