НОВОЕ 📢 Ограниченное стартовое предложение: скидка до 70% на первый месяц для любой игры!Посмотреть тарифы

Как запустить Discord Tickets, готового бота для тикетов

Хостинг Discord-ботовUpdated Oct 29, 20268 min read

Discord Tickets это готовый бот для тикетов: участники открывают приватные каналы-тикеты, ваш персонал отвечает, берёт их в работу и закрывает, а расшифровки сохраняются. Настраивается он в собственной веб-панели управления. Ему нужны токен вашего бота, Client Secret вашего приложения, все три привилегированных интента и одна ссылка-redirect, добавленная в Developer Portal. Код не нужен.

  1. В Discord Developer Portal создайте бота, скопируйте его токен и Client Secret и включите все три привилегированных интента.
  2. В панели сделайте так, чтобы сервер запускал Discord Tickets (Изменить, что запускается).
  3. Вставьте токен в карточку Настройка бота на странице Обзор, а client secret в Бот, Окружение, Учётные данные.
  4. Пригласите бота через раздел Ссылка-приглашение.
  5. Запустите его, добавьте адрес redirect из консоли на страницу OAuth2 в Portal и настройте бота в его панели управления.

Каждый шаг разобран ниже.

Перед началом

  1. Создайте бота в Discord Developer Portal и скопируйте его токен: Как создать Discord-бота и получить его токен.
  2. На странице Bot вашего приложения включите Presence Intent, Server Members Intent и Message Content Intent и нажмите Save Changes. Бот запрашивает у Discord все три при входе.
  3. На странице OAuth2 скопируйте Client Secret (нажмите Reset Secret, если он скрыт). Он нужен для входа в панель управления. Храните его в тайне, как и токен.

1. Настройте сервер на запуск Discord Tickets

  1. Откройте сервер в панели. На странице Обзор, в карточке Настройка бота, нажмите шаг Что запускается. Если тип уже правильный, там написано «Этот бот запускает Discord Tickets.»
  2. Если нет, нажмите Изменить, что запускается (или название типа бота вверху страницы), выберите Discord Tickets, нажмите Дальше, поставьте галочку подтверждения и нажмите Сменить тип сервера.

2. Вставьте токен и client secret

  1. Карточка настройки, шаг Подключение к Discord: вставьте токен в поле Вставьте токен бота, нажмите Подключить, затем Да, продолжить.
  2. Откройте страницу Бот и нажмите Окружение (последний шаг карточки настройки тоже ведёт сюда ссылкой Открыть окружение и держит кнопку Запустить бота неактивной, пока секрет не задан). На карточке Учётные данные у Client Secret написано Обязательно. Нажмите Задать, вставьте client secret и нажмите Сохранить.
  3. Пока оставьте Database connection string пустым: тогда бот хранит тикеты в файле на сервере. ENCRYPTION_KEY с пометкой Создано PlayNHost создаётся за вас и защищает сохранённое содержимое тикетов. Никогда не удаляйте его.

Страница «Бот», раздел «Окружение», карточка «Учётные данные» для Discord Tickets: Client Secret, Database connection string и ENCRYPTION_KEY, созданный PlayNHost.

3. Проверьте интенты и пригласите бота

  1. Карточка настройки, шаг Разрешения: в таблице Привилегированные интенты пункты Server Members, Message Content и Presence отмечены как Нужно для Discord Tickets. Для каждого в столбце В вашем портале должно быть Вкл. После изменений в Portal нажмите Проверить снова.
  2. В разделе Ссылка-приглашение нажмите Добавить на сервер Discord и выберите свой сервер. Ссылка уже запрашивает то, что нужно боту тикетов, чтобы создавать каналы тикетов и решать, кто их видит: Управление каналами, Управление ролями и Управлять сообщениями, а также Просмотр каналов, Отправлять сообщения, Встраивать ссылки и ещё несколько.

Карточка настройки на странице «Обзор» на шаге «Разрешения» для Discord Tickets: три интента с пометкой «Нужно» и ссылка-приглашение ниже.

Уже приглашали бота с меньшим набором прав? Нажмите Добавить на сервер Discord ещё раз и выберите тот же сервер: Discord обновит права бота.

4. Запустите бота и добавьте redirect

  1. Откройте Console и нажмите Запустить. Среди первых строк вы увидите такие, с вашим собственным адресом (шаг с базой данных выводит несколько своих строк после Preparing the database):
[PlayNHost] Using a SQLite file (user/database.db). To use your plan's MySQL database instead, create one in Databases and paste its Generic URL (Ready-made config) into Database connection string on the Bot page, Environment. Tickets are not copied between the two.
[PlayNHost] Preparing the database
[PlayNHost] Dashboard: http://203.0.113.10:30500/settings
[PlayNHost] In your Discord application, OAuth2 page, add this redirect: http://203.0.113.10:30500/auth/callback
[PlayNHost] Starting your bot
  1. Скопируйте адрес redirect из консоли. В Developer Portal откройте OAuth2, нажмите Add Redirect в разделе Redirects, вставьте его и нажмите Save Changes. Без него вход в панель управления не работает.
  2. Строка Warning: The current working directory is not the same as the base directory. на наших серверах ожидаема и безвредна.

5. Настройте бота в панели управления

  1. Откройте в браузере адрес Dashboard из консоли и войдите через Discord.
  2. Выберите свой сервер Discord и создайте хотя бы одну категорию тикетов: её название, какие роли персонала видят её тикеты и вопросы, на которые отвечают участники.
  3. Участники открывают тикет командой /new или кнопкой на сообщении-панели, которое вы создаёте в панели управления. Персонал использует /claim, /close, /add, /remove и /transcript.

Панель управления работает по обычному http на адресе и порту вашего сервера, поэтому браузер помечает её как небезопасную. Чтобы дать ей домен с https, перед ней нужен ваш собственный прокси: см. Адрес дашборда ниже.

Настройки

На странице Бот, в разделе Код, на карточке Настройки есть следующие параметры. После изменения нажмите Сохранить, затем перезапустите бота.

НастройкаПо умолчаниюЧто она делает
Владельцы бота (необязательно)пустоID пользователей Discord через запятую, которые могут управлять ботом на каждом сервере, где он есть. Впишите сюда свой ID.
Адрес дашборда (необязательно)пустоНужен, только если перед панелью управления стоит ваш собственный https-прокси или домен, например https://tickets.example.com. Если пусто, используется http:// с адресом и портом вашего сервера. Измените redirect в Portal так, чтобы он совпадал.
Доверять заголовкам проксиfalsetrue только когда панель управления стоит за вашим собственным обратным прокси.
Публиковать команды при запускеtrueРегистрирует слэш-команды бота в Discord при каждом запуске.
ВерсияlatestЧитается только во время установки сервера, поэтому применяется после Переустановить. См. Обновление ниже.

Используйте базу MySQL вашего тарифа

  1. Откройте Базы данных в меню сервера, нажмите Новая база данных, затем Создать базу данных.
  2. Нажмите на новую базу в списке Ваши базы данных. В её карточке Готовый конфиг выберите Generic URL в списке Конфиг для и нажмите Копировать. Строка начинается с mysql://; вставьте её как есть.
  3. На странице Бот, в разделе Окружение, на карточке Учётные данные нажмите Задать рядом с Database connection string, вставьте строку и нажмите Сохранить.
  4. Перезапустите бота. Теперь консоль пишет [PlayNHost] Using your MySQL database.

Если после этого консоль пишет [PlayNHost] The database could not be prepared, на сервере, возможно, остался скрипт запуска от старой установки, который неправильно читает скопированный адрес, когда в пароле есть специальные символы. Один раз нажмите Переустановить на карточке Переустановить в разделе Бот, Код (ваши настройки, тикеты и ключ шифрования останутся), затем снова запустите бота.

Тикеты не копируются между файлом и MySQL, поэтому выберите вариант до того, как участники начнут пользоваться ботом. Подробнее о базах данных: Как пользоваться базами данных на сервере.

Строки консоли, которые вы можете увидеть

[PlayNHost] Discord Tickets is not set up yet: it needs your bot token and your application's client secret.

Не хватает токена или client secret. Вставьте токен на странице Бот, в разделе Discord, а секрет на странице Бот, в разделе Окружение, в карточке Учётные данные, затем нажмите Запустить.

[PlayNHost] Discord Tickets is not installed. Reinstall it on the Bot page, Code, then press Start.

Файлов бота нет. На странице Бот, в разделе Код, нажмите Переустановить на карточке Переустановить и подтвердите. Когда установка закончится, нажмите Запустить.

[PlayNHost] The database connection string is not valid. Open Databases, open your database, copy Ready-made config, Generic URL into Database connection string on the Bot page, Environment, then press Start.

Заново скопируйте Generic URL из карточки Готовый конфиг вашей базы данных и нажмите Заменить рядом с Database connection string в разделе Учётные данные.

[PlayNHost] The encryption key is not ready yet. Press Start again in a minute; if this repeats, contact support.

Подождите минуту и снова нажмите Запустить. Если сообщение вернётся, создайте тикет.

Полезно знать

  • Discord Tickets не умеет отправлять электронную почту.
  • Ваши тикеты, шаблоны и логи лежат в папках user и logs в разделе Files. Делайте их бэкап перед крупными изменениями: Как создавать, скачивать и восстанавливать бэкапы.
  • Обновление: установка скачивает самый новый релиз с GitHub проекта или релиз, указанный в поле Версия, например v4.0.52. Чтобы обновить, задайте Версия, если нужен определённый релиз, затем на странице Бот, в разделе Код, нажмите Переустановить на карточке Переустановить и подтвердите. Ваши настройки, тикеты и ключ шифрования останутся. Когда всё закончится, снова запустите бота.
  • Хотите сделать собственного бота? Как сделать тикет-бота для Discord (discord.js).

Все параметры каждого готового бота: Как изменить настройки готового бота.

Ваш бот уже у другого хостинга? Перенесите его к нам

ПОСЛЕДНИЕ БЛОГИ