Скрипт пересоздания услуг ВКонтакте

Python-скрипт, который пересоздаёт услуги ВКонтакте, восстанавливая размеры миниатюр до дефолтных.

Что лежит в архиве

vk-services-tool/ ├── create_services.py ← создаёт копии услуг (с правильным кропом) ├── delete_services.py ← удаляет старые услуги ├── Сбор ID услуг - код для консоли браузера.txt ← JS-код для сбора ID └── README.txt ← этот гайд

Перед дублированием: советую сразу перезагрузить в переносимые услуги все обложки в соотношении сторон 1:1, заранее спроектировав их с осознанием что боковые стороны на миниатюрах обрежутся примерно по 8.25% (с каждой).

Шаг 0. Установи Python (один раз)

  1. Перейди на python.org/downloads
  2. Нажми «Download Python 3.x.x»
  3. Запусти установщик
ОБЯЗАТЕЛЬНО поставь галочку Add Python to PATH на первом экране!
  1. Нажми «Install Now», дождись окончания

Шаг 1. Установи зависимости (один раз)

Открой командную строку: Win + R → набери cmd → Enter

Введи команду:

pip install requests Pillow

Если пишет «pip не найден»:

python -m pip install requests Pillow

Шаг 2. Получи Access Token

  1. Перейди на vkhost.github.io
  2. Нажми «VK Admin»
  3. Нажми «Разрешить»
  4. Тебя перекинет на страницу с длинной ссылкой в адресной строке
  5. Скопируй часть от access_token= до &expires_in
https://oauth.vk.com/blank.html#access_token=vk1.a.ДЛИННЫЙ_НАБОР_СИМВОЛОВ&expires_in=0&user_id=... ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ копируешь только эту часть
Токен живёт ограниченное время. Если скрипт выдаёт ошибку авторизации — получи новый.

Шаг 3. Узнай Group ID

  1. Открой свою группу VK
  2. Посмотри адресную строку:
    • Если vk.com/club42094082 — ID = 42094082
    • Если vk.com/my_short_name — открой Управление → Информация
    • Или зайди на regvk.com/id → вставь ссылку → получишь ID

Шаг 4. Собери ID услуг

  1. Открой свою группу ВК → раздел «Товары» или «Услуги»
  2. Нажми F12 (откроется панель разработчика)
  3. Перейди на вкладку «Console»
  4. Открой файл «Сбор ID услуг - код для консоли браузера.txt» из архива
  5. Скопируй весь код оттуда
  6. Вставь в консоль браузера и нажми Enter
  7. Скрипт выведет список ID — скопируй его

Шаг 5. Настрой скрипт

Открой файл create_services.py в блокноте (ПКМ → Открыть с помощью → Блокнот) и заполни 3 поля:

# ============ НАСТРОЙКИ ============ ACCESS_TOKEN = "ВСТАВЬ_СЮДА_СВОЙ_ТОКЕН" ← из шага 2 GROUP_ID = 42094082 ← из шага 3 SERVICE_IDS = [10069128, 10069262, ...] ← из шага 4
ПолеЧто вставлятьОткуда
ACCESS_TOKENДлинная строка токена в кавычкахШаг 2 (vkhost.github.io)
GROUP_IDЧисловой ID группы БЕЗ минусаШаг 3 (адресная строка)
SERVICE_IDSСписок ID в квадратных скобках через запятуюШаг 4 (консоль браузера)

Сохрани файл (Ctrl + S). Аналогично настрой delete_services.py (те же 3 поля).

Шаг 6. Запусти создание новых услуг

cd ПУТЬ_К_РАСПАКОВАННОЙ_ПАПКЕ python create_services.py

Например:

cd C:\Users\Вася\Downloads\vk-services-tool python create_services.py
Напиши cd (с пробелом), затем перетащи папку из проводника прямо в окно CMD — путь вставится автоматически.

Скрипт скачает фото из старых услуг, загрузит их заново с правильным кропом, создаст новые услуги с теми же данными и сохранит маппинг в created_services.json.

Шаг 7. Проверь результат

  1. Открой группу ВК → Товары/Услуги
  2. Убедись что новые услуги выглядят правильно
  3. Проверь: обложки не обрезаны, цены на месте, описания сохранились, доп. фото на месте

Шаг 8. Удали старые услуги

Только после проверки! Это необратимо.

Открой delete_services.py, убедись что ACCESS_TOKEN, GROUP_ID и SERVICE_IDS заполнены, затем:

python delete_services.py

Скрипт покажет список и попросит подтверждение — введи YES.

Частые проблемы

  • «python не является внутренней командой» — Python не добавлен в PATH. Переустанови с галочкой «Add Python to PATH»
  • «No module named requests»pip install requests Pillow
  • «User authorization failed» — токен истёк, получи новый (Шаг 2)
  • «Access denied» — нажимал не «VK Admin» на vkhost.github.io
  • Скрипт мелькнул и закрылся — не запускай двойным кликом, используй CMD
  • Цена отображается неправильно — используй последнюю версию скрипта

Файлы, которые создаёт скрипт

ФайлОписание
services_backup.jsonПолный бэкап данных всех услуг
created_services.jsonСписок: старый ID → новый ID
temp_images/Папка с временными картинками (можно удалить после)