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)} постов.")