За десять минут: приложение, бот с токеном, приглашение на свой сервер и работающая команда «/ping». Нужен аккаунт Voice и сервер, где у вас есть право «Управлять сервером».
- Создайте приложениеОткройте Мои приложения, войдите через Voice и нажмите «Новое приложение». Приложение — это одновременно клиент Voice ID (для входа на сайты) и, по желанию, бот. Сразу появится
client_secret— он показывается один раз, сохраните его, если будете делать вход на сайт. - Получите токен ботаНа вкладке «Бот» нажмите «Создать бота». Токен вида
vbt_…тоже показывается один раз. Его можно сбросить — старый перестанет работать, а подключения бота закроются.Токен даёт полный доступ к боту. Не публикуйте его в коде и репозиториях — передавайте через переменную окружения. - Пригласите бота на серверТам же, на вкладке «Бот», выберите права и нажмите «Добавить на сервер». Откроется экран Voice ID — выберите сервер. Ссылку можно отдать другим (если бот публичный):Боту выдаётся своя роль с выбранными правами; выдать больше прав, чем есть у вас, нельзя. Коды прав — в разделе Права.text
https://voice-chat.ru/oauth2/authorize?client_id=ID_ПРИЛОЖЕНИЯ&scope=bot%20applications.commands&permissions=117824 - Запустите кодВыберите язык. Вариант «Node.js + SDK» использует наш файл voice.mjs без зависимостей; остальные обращаются к API напрямую.Подготовка
# Node.js + SDK curl -O https://voice-chat.ru/sdk/voice.mjs VOICE_TOKEN="vbt_…" node bot.mjs # Python pip install aiohttp VOICE_TOKEN="vbt_…" python3 bot.pybot.mjs// bot.mjs — Node.js 22+ import { Client, button, row } from "./voice.mjs"; const client = new Client({ token: process.env.VOICE_TOKEN, baseUrl: "https://voice-chat.ru" }); // Команды объявляются здесь и регистрируются на сервере при login() client.command("ping", "Проверить, что бот жив", [], (i) => i.reply("Понг! 🏓")); client.command("кубик", "Бросить кубик", [ { type: "integer", name: "грани", description: "Сколько граней", min: 2, max: 100 }, ], (i) => { const n = i.options["грани"] ?? 6; return i.reply({ content: `🎲 Выпало ${1 + Math.floor(Math.random() * n)}`, components: [row(button.primary("Ещё раз", "reroll"))], }); }); client.button("reroll", (i) => i.update({ content: `🎲 Выпало ${1 + Math.floor(Math.random() * 6)}` })); client.on("message", (m) => { if (m.content === "!привет") m.reply("И тебе привет!"); }); client.on("ready", () => { console.log("Бот запущен как", client.user.displayName); client.setActivity("/ping"); }); await client.login(); - ПроверьтеВ консоли появится «Бот запущен как …», а в списке участников сервера — бот в сети. Наберите в канале
/pingи выберите команду в подсказках — бот ответит «Понг!». На вкладке «Журнал» консоли видно каждое событие, которое получил бот.
Что дальше
- Команды «/» и кнопки — параметры, ответы «видно только вам», отложенные ответы.
- Карточки и кнопки — оформление сообщений бота.
- События шлюза — участники, реакции, изменения каналов.
- Лимиты — сколько и как часто можно отправлять.