Войти

Боты для Discord работают в Кличате

API Кличата повторяет API Discord, поэтому бот на discord.js или discord.py подключается сменой адреса. Переписывать команды и обработчики не нужно.

Создать аккаунтОткрыть в браузере

Адреса

ЧтоАдрес
REST APIhttps://klichat.ru/api — пути /api/v9 и /api/v10 тоже работают
Шлюз WebSocketwss://klichat.ru/gateway — библиотека получает его сама из GET /gateway/bot
ЗаголовокAuthorization: Bot <токен>

Как получить токен

  1. Включите двухфакторную защиту в разделе Настройки → Моя учётная запись: без неё приложение не создать.
  2. Откройте Настройки → Разработчикам → Боты, создайте приложение и бота, скопируйте токен.
  3. Если боту нужны список участников, присутствие или текст сообщений, включите соответствующие привилегированные intents в настройках приложения. Без них шлюз закроет сессию кодом 4014.
  4. Отметьте права и добавьте бота на свой сервер по ссылке из того же раздела.

discord.js

Достаточно указать адрес REST. Адрес шлюза библиотека возьмёт из ответа API.

const { Client, GatewayIntentBits } = require('discord.js')

const client = new Client({
  intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent],
  rest: { api: 'https://klichat.ru/api' },
})

client.on('messageCreate', (m) => {
  if (m.content === '!пинг') m.reply('понг')
})

client.login(process.env.KLICHAT_BOT_TOKEN)

discord.py

Адрес REST задаётся до запуска клиента.

import os
import discord
from discord.http import Route

Route.BASE = 'https://klichat.ru/api/v10'

intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)

@client.event
async def on_message(message):
    if message.content == '!пинг':
        await message.reply('понг')

client.run(os.environ['KLICHAT_BOT_TOKEN'])

Что поддерживается

Пока не поддерживаются слэш-команды и взаимодействия, а также голос для ботов: музыкальные боты на discord.js voice не заработают. Для команд используйте текстовые сообщения с префиксом.

Если что-то в библиотеке ведёт себя не так, как с Discord, напишите в канал #боты-и-api на официальном сервере Кличата или в поддержку.

Документация

Частые вопросы

Нужно ли переписывать бота под Кличат?

Нет. Меняется адрес API, токен берётся в Кличате. Код команд и обработчиков остаётся прежним.

Работают ли слэш-команды?

Пока нет. Бот может отвечать на текстовые команды с префиксом, реакции и другие события.

Может ли бот зайти в голосовой канал?

Пока нет. Голос для ботов в планах.

Ещё по теме

Попробуйте Кличат

Бесплатно. Регистрация занимает минуту: номер телефона, код и имя. Из-за рубежа — по почте.