Как сделать вебхук Discord

Обновлено: 03.07.2024

В предыдущей статье мы использовали веб-интерфейс Discord для настройки веб-перехватчика на сервере Discord. Этот веб-перехватчик получал обновления коммитов от GitHub и публиковал информацию в виде сообщения на назначенном ему канале.

В этом руководстве мы реализуем ту же настройку; однако на этот раз мы будем использовать Discord API для настройки нашего веб-хука. Discord API предлагает большую гибкость для интеграции с Discord, позволяя разработчикам взаимодействовать с Discord в рамках автоматизированных сценариев и рабочих процессов.

Если вы еще не знакомы с веб-перехватчиками Discord и хотели бы узнать о них все и о том, как они работают, прочитайте эту статью, прежде чем продолжить.

В восторге от использования Discord API для настройки веб-перехватчиков? Приступим.

Учебное пособие. Как настроить веб-перехватчики Discord с помощью интерфейса администратора

Узнайте, как создавать, редактировать и удалять веб-перехватчики разногласий с помощью страницы настроек с помощью подробного пошагового примера

Как начать работу с веб-перехватчиками Discord

Узнайте, что делают веб-перехватчики Discord, где найти веб-перехватчики Discord, как добавить веб-перехватчики Discord и многое другое!

Настройка получения обновлений фиксации GitHub в каналах Discord

Прежде чем мы углубимся в реализацию нашей интеграции GitHub и Discord, давайте уделим несколько секунд рассмотрению требований и шагов, которые необходимо предпринять для достижения интеграции.

Для начала необходимы следующие аккаунты:

Теперь, когда они у вас есть, вот шаги, которые вы предпримете для создания потока связи между GitHub и Discord с помощью веб-перехватчиков, созданных с помощью API Discord:

  • Создайте сервер Discord и настройте канал для получения обновлений фиксации с GitHub
  • Создайте приложение Discord и добавьте в него бота с необходимыми разрешениями для создания веб-перехватчиков.
  • Создайте веб-перехватчик Discord с помощью Discord API, выполнив аутентификацию с помощью токена Bot
  • Создайте подключение к Hookdeck для приема веб-перехватчиков.
  • Создайте веб-перехватчик GitHub, используя URL-адрес веб-перехватчика из Hookdeck.
  • Проверьте подключение

Звучит просто? Давайте приступим!

Создание сервера и канала Discord

Первый шаг — создать сервер Discord и добавить на него канал. Чтобы создать сервер, нажмите кнопку плюс (+) в боковом меню интерфейса Discord. Затем следуйте указаниям мастера создания сервера (Создать свой → Для меня и моих друзей) и введите имя для своего сервера, как показано ниже:

Нажмите кнопку "Создать", чтобы завершить процесс.

Затем добавьте канал на свой сервер, нажав значок + рядом с меткой ТЕКСТОВЫЕ КАНАЛЫ в меню сервера. Когда появится диалоговое окно для ввода имени вашего канала, введите значение webhooks-channel, как показано ниже, и нажмите кнопку «Создать канал».

Теперь, когда вы создали канал, вам нужен идентификатор канала. Идентификатор канала можно получить только в режиме разработчика, поэтому вы должны щелкнуть значок шестеренки «Настройки пользователя» в левом нижнем углу экрана и нажать «Дополнительно» в боковом меню. Здесь вы можете включить режим разработчика, как показано ниже:

Включив режим разработчика, вы можете вернуться на свой сервер Discord и щелкнуть правой кнопкой мыши канал webhooks-channel, чтобы скопировать идентификатор канала (щелкните «Копировать идентификатор» в контекстном меню).

Создание бота Discord

Следующий шаг — создать приложение Discord и добавить в него бота Discord. Бот Discord (или учетная запись бота Discord) — это особый тип учетной записи пользователя Discord, предназначенный для автоматизации. Учетные записи ботов имеют полный доступ ко всем маршрутам API без использования токенов-носителей, вместо этого используется токен бота.

Чтобы создать приложение Discord, перейдите на страницу приложений и нажмите кнопку «Новое приложение». Введите имя для своего приложения, как показано ниже:

Нажмите «Создать», чтобы завершить процесс создания приложения.

После создания приложения перейдите в OAuth2 → Общие, чтобы скопировать идентификатор клиента. Этот идентификатор понадобится позже, поэтому храните его в легкодоступном месте.

Далее вам нужно добавить бота в приложение. Нажмите «Бот» в меню приложения, а затем нажмите кнопку «Добавить бота» (нажмите «Да, сделайте это!» в запросе подтверждения). На странице бота скопируйте токен бота, как показано ниже:

Затем прокрутите вниз до раздела «Разрешения для ботов» и выберите «Управление веб-перехватчиками», как показано ниже:

Это разрешение необходимо для создания веб-перехватчиков с помощью Discord API. Нажмите кнопку Копировать рядом с полем РАЗРЕШЕНИЯ INTEGER. Это целое число разрешений требуется для аутентификации бота.

Чтобы аутентифицировать бота для доступа к Discord API, введите в браузере следующий URL-адрес (не забудьте заменить client_id и разрешения_integer своими значениями):

Подробнее о процессе авторизации бота можно найти здесь.Этот URL-адрес проведет вас через процесс авторизации, где вы авторизуете бота с необходимыми разрешениями, как показано ниже:

Может также потребоваться проверка робота, но как только вы ее пройдете, вы получите сообщение о том, что ваш бот теперь авторизован.

Создание веб-перехватчика Discord с помощью Discord API

Теперь давайте создадим веб-перехватчик Discord с помощью Discord API. Введите адрес API веб-перехватчиков Discord, показанный ниже, в качестве адреса конечной точки:

Не забудьте заменить channel_id идентификатором вашего канала.

Выберите метод запроса POST и добавьте заголовок авторизации в следующем формате:

bot_token — это токен, который вы скопировали со своей страницы бота в Discord.

Последний элемент, который необходимо добавить, — это тело запроса. Используя тип содержимого application/json , отправьте следующее тело запроса:

Свойство name — это имя, которое вы хотите присвоить веб-перехватчику Discord, и это единственное обязательное свойство. Подробнее о создании веб-перехватчиков с помощью API см. здесь.

Теперь отправьте запрос, и вы получите успешный ответ, как показано ниже:

Когда я впервые создал веб-перехватчик с помощью API Discord, я заметил одну интересную вещь: не возвращался URL-адрес веб-перехватчика. Согласно определению объекта веб-перехватчика Discord, должен быть возвращен URL-адрес веб-перехватчика. Однако я заметил, что были возвращены идентификатор веб-перехватчика и токен веб-перехватчика (поля идентификатора и токена в ответе).

URL-адрес веб-перехватчика Discord имеет следующий формат:

Таким образом, вы можете легко создать URL-адрес веб-перехватчика, используя сведения из ответа API.

Настройка подключения в Hookdeck

Следующий шаг – создание подключения к веб-перехватчику в Hookdeck. Соединение Hookdeck помогает принимать запросы веб-перехватчиков, поступающие из GitHub, и асинхронно отправляет их в Discord, чтобы гарантировать, что ни один веб-перехватчик не будет удален в случае всплеска трафика веб-перехватчика. Это считается лучшей практикой для веб-перехватчиков в рабочей среде. Прочтите эту статью, чтобы узнать больше о рекомендациях по использованию веб-перехватчиков в рабочих средах.

Чтобы создать подключение к Hookdeck, перейдите в раздел «Подключения» на панели инструментов и нажмите кнопку «Создать». Заполните поля формы подключения, как указано ниже.

  • Имя источника: my-github-repository
  • Название места назначения: my-discord-channel
  • Целевой URL:URL вашего веб-перехватчика Discord
  • Набор правил: my-discord-ruleset

Заполненная форма показана ниже в качестве справки.

Нажмите кнопку "Сохранить", чтобы создать подключение.

Ваше подключение теперь отображается в списке подключений, как показано ниже:

Нажмите ссылку Копировать URL-адрес веб-перехватчика в источнике подключения, чтобы получить URL-адрес веб-перехватчика Hookdeck, как показано ниже:

Это URL-адрес веб-перехватчика, который вам понадобится для настройки веб-перехватчика GitHub.

Рекомендации по развертыванию веб-перехватчиков в рабочей среде

Из этой статьи вы узнаете, как настроить, масштабировать и устранить ошибки для развертывания веб-перехватчиков в рабочей среде.

Настройка репозитория GitHub для отправки коммитов в Discord

Следующий шаг — настроить веб-перехватчик в репозитории GitHub. Этот веб-хук будет запускаться каждый раз, когда запускается push-событие. Событие push запускается, когда в репозиторий GitHub делается новая фиксация.

Чтобы настроить веб-перехватчик GitHub, перейдите к репозиторию, который вы хотите использовать для этого руководства, затем выберите «Настройки» → «Веб-перехватчики» и нажмите кнопку «Добавить веб-перехватчик» на странице «Веб-перехватчики». Заполните форму веб-перехватчика GitHub следующим образом:

Оставьте остальные параметры в форме по умолчанию. Заполненная версия формы веб-перехватчика показана ниже.

Обратите внимание еще раз, чтобы добавить /github к вашему Hookdeck, так как это гарантирует, что Discord понимает, как анализировать полезную нагрузку, отправленную GitHub. Это может быть применимо не ко всем приложениям, которые вы хотите интегрировать с веб-перехватчиками Discord. Чтобы найти информацию о формате сообщений веб-перехватчиков Discord, ознакомьтесь с этим руководством. Вы также можете найти более подробную информацию об интеграции GitHub с Discord здесь.

Нажмите кнопку "Добавить веб-перехватчик", чтобы завершить процесс создания веб-перехватчика GitHub. GitHub автоматически инициирует запрос веб-перехватчика ping при создании нового веб-перехватчика. Вы можете проигнорировать этот запрос проверки связи и перейти к следующему шагу.

Тестирование уведомлений веб-перехватчиков Discord

Поскольку соединение между Discord и GitHub установлено через Hookdeck, пришло время протестировать поток связи. Отправьте новое обновление в свой репозиторий GitHub. После нажатия проверьте страницу «Подключения» на панели инструментов Hookdeck, где вы увидите событие, подобное приведенному ниже:

Нажав на событие, вы увидите подробные сведения о событии на экране справа. Однако для просмотра полной информации о событии необходимо щелкнуть значок стрелки в правом верхнем углу. На полной странице события вы можете просмотреть метаданные, заголовки и тело веб-перехватчика, как показано ниже:

Если вы ничего не знаете о JSON, потратьте немного времени на изучение структуры JSON.

Структура веб-перехватчиков

Прежде чем использовать веб-перехватчики, вы должны знать их структуру. Все перечисленные здесь элементы являются необязательными, но вам все равно необходимо использовать контент или встроенный объект хотя бы один раз. Это минимальное требование.

  • имя пользователя: [строка] — если используется, оно переопределяет имя пользователя веб-перехватчика по умолчанию.
  • avatar_url : [url-адрес изображения] — если используется, переопределяет аватар веб-перехватчика по умолчанию.
  • content : [string] - простое сообщение, сообщение содержит (до 2000 символов)
  • embeds : [массив] — массив встраиваемых объектов. Это означает, что вы можете использовать несколько тегов в одном теле
      .
    • author : [object] — вставить объект автора
      • name : [string] - имя автора
      • url : [url сайта] - адрес автора. Если использовалось имя, оно становится гиперссылкой
      • icon_url : [url изображения] — URL значка автора
      • имя : [строка] - название поля
      • value : [string] — значение поля
      • inline : [bool] — если true, поля будут отображаться в одной строке, но их может быть не более 3 в одной строке или не более 2, если вы использовали эскиз.
      • url : [url of image] - URL миниатюры
      • url : [url of image] - URL изображения
      • text : [string] — текст нижнего колонтитула, не поддерживает Markdown
      • icon_url : [url изображения] — URL значка нижнего колонтитула

      Пример вебхука

      И как это выглядит

      example

      Аккаунт на IFTTT

      Посетите IFTTT и создайте учетную запись (если у вас ее нет).

      Вебхук в Discord

      1. Перейдите в настройки сервера -> Веб-перехватчики -> Создать веб-перехватчик.
      2. Установите имя, аватар и канал, на котором он будет размещен. Скопируйте URL веб-перехватчика. Не разделяют! Очень опасно!
      3. Нажмите "Сохранить", а затем кнопку "Готово".

      Создание апплета

      1. Перейти в Мои апплеты -> Новый апплет
      2. Нажмите [+]это
      3. Выберите услугу . Теоретически вы можете использовать их все.
      4. Выберите триггер . Прочтите описание под каждым триггером и выберите нужный
      5. Заполните триггерные поля . Может быть больше одного шага. Ознакомьтесь с описаниями и примерами
      1. Нажмите [+], чтобы
      2. Выберите службу действий . Вам нужны вебхуки. Воспользуйтесь строкой поиска.
      3. Выберите действие . Выберите Сделать веб-запрос.
      4. Вставьте свой URL веб-перехватчика в поле URL
      5. Выберите метод POST
      6. Выберите тип содержимого приложения/json
      7. А теперь самое сложное™. Вам нужно создать тело JSON. Следуйте структуре, используйте ее как пример и не забывайте о здравом смысле. Нажмите кнопку + Ингредиент и введите Ингредиенты в соответствующие поля. Если что-то говорит URL, поместите его в "url":">" , если что-то говорит ImageURL , попробуйте поместить это в "image": >"> . Универсального решения не существует
      8. Нажмите «Создать действие», а затем «Готово».
      9. Готово!
      • Не забудьте проверить тело JSON с помощью валидатора JSON. Если вы ничего не знаете, используйте один из них:

      добавлен комментарий redacted-dev 30 сентября 2020 г.

      действительно чертовски круто, спасибо!

      blackdackota прокомментировал 15 февраля 2021 г.

      Итак, как заставить сайт отправлять информацию на мой канал в разногласиях с помощью веб-перехватчика IFTTT?

      Birdie0 прокомментировал 15 февраля 2021 г.

      Итак, как заставить сайт отправлять информацию на мой канал разногласий с помощью веб-перехватчика IFTTT?

      blackdackota прокомментировал 15 февраля 2021 г.

      Birdie0 прокомментировал 15 февраля 2021 г.

      @blackdakota поняла. Я проверил веб-сайт, и пока там нет API, единственный способ отправить его в Discord — это создать скрипт, который будет очищать страницу (при условии, что вам не нужно входить в систему, чтобы увидеть турнирную таблицу), создавать тело запроса и отправлять веб-хук, в противном случае я не могу придумать никаких других способов.

      blackdackota прокомментировал 15 февраля 2021 г.

      О, хорошо. Могу ли я сделать это, если для просмотра турнирной таблицы требуется вход в систему?

      Birdie0 прокомментировал 15 февраля 2021 г.

      @blackdakota, не совсем так. Остался только один способ, и он довольно сложный, без автоматизации (нужно запускать вручную) и в основном с запуском скрипта в консоли браузера, который будет извлекать значения со страницы и отправлять запрос.

      blackdackota прокомментировал 15 февраля 2021 г.

      Блин, ну ладно, спасибо за помощь.

      rajada1 прокомментировал 4 марта 2021 г.

      Я хочу удалить и обновить подобное сообщение, где находится message.id?

      Birdie0 прокомментировал 4 марта 2021 г.

      Идентификатор сообщения @rajada1 можно скопировать, щелкнув правой кнопкой мыши Discord (сначала включите режим разработчика). если вы можете обрабатывать ответы на запросы, вы можете добавить ?wait=true , что заставит ответ веб-перехватчика возвращать объект сообщения, который содержит идентификатор сообщения и другие данные.

      rajada1 прокомментировал 5 марта 2021 г.

      Спасибо за ответ, так получилось.
      Но есть ли способ получить message.id через API?

      Birdie0 прокомментировал 5 марта 2021 г. •

      Но есть ли способ получить message.id через API?

      Для этого вам нужен бот, например используйте метод, который возвращает массив сообщений из канала и т. д.

      rajada1 прокомментировал 5 марта 2021 г.

      @rajada1

      Что делать, если нужно проверить message.id через API?

      Você precisa de bot para isso, como usar método que retorna matriz de mensagens do canal и т. д.

      blackdackota прокомментировал 22 марта 2021 г. •

      Итак, я немного изучил HTML и Python, когда в последний раз писал вам, и я работаю над созданием бота для того, о чем я говорил с вами в прошлый раз (оказалось, что вам не нужно входить в систему, чтобы увидеть турнирную таблицу). Я столкнулся с проблемой, хотя я не уверен, как решить. Когда я очищаю страницу, я не получаю полный код с веб-сайта.

      Это мой код:

      Это результат:

      Процесс завершен с кодом выхода 0

      Вы знаете, как это решить?

      Birdie0 прокомментировал 22 марта 2021 г.

      @blackdackota по выходным данным я могу сказать, что это страница, сгенерированная не на стороне сервера (в этом случае скрапинг будет работать), а на стороне клиента, так что это означает, что данные поступают из запросов API, после чего страница заполняется.
      В инструментах разработчика -> вкладка запросов -> фильтровать по xhr, я вижу пару запросов, и один из них возвращает json с данными для таблицы лидеров.

      Вот пример ReqBin, там можно даже получить сгенерированный код для python и т.д. Структура запроса проста:

      Ответ по данным пути -> фаза -> PhaseResults содержит все необходимые данные. Я рекомендую попробовать выполнить этот запрос с некоторыми из них, такими как Hoppscotch (онлайн-инструмент), Insomnia (устанавливается) или Postman (устанавливается), чтобы вы могли увидеть структуру и понять, как ее извлечь и форматировать для отправки в Discord.

      В этой статье вы познакомитесь с веб-перехватчиками Discord, узнаете, что они делают, как работают и как их быстро настроить. Мы также рассмотрим пример использования и постараемся ответить на распространенные вопросы, которые разработчики задают, когда начинают работать с веб-перехватчиками в Discord.

      Что делают вебхуки в Discord?

      Возможно, вы работали с веб-перехватчиками других поставщиков, таких как GitHub, Shopify или CircleCI, или вы впервые работаете с веб-перехватчиками. В любом случае сначала необходимо понять роль веб-перехватчиков в Discord, поскольку роль веб-перехватчиков часто варьируется от платформы к платформе.

      Веб-перехватчики Discord позволяют легко получать автоматические сообщения и обновления данных в канале Discord. Проще говоря, внешний источник информации может использовать веб-перехватчики Discord для передачи своей информации в канал Discord.

      Это помогает повысить качество разговоров в Discord, поскольку можно получить больше информации благодаря интеграции с многочисленными внешними источниками с использованием технологии веб-перехватчиков Discord.

      Предположим, например, что финансовый отдел использует Discord для общения и хочет, чтобы сводные отчеты о ежедневных продажах публиковались на их канале Discord в конце каждого рабочего дня. Эти записи могут находиться в специальном бухгалтерском приложении или в SaaS-приложении для управления платежами/подписками, таком как Chargebee, которое поддерживает отправку информации с помощью веб-перехватчиков. Затем команда может настроить автоматическую публикацию сообщений из этих внешних источников на свой канал Discord с помощью веб-перехватчиков Discord.

      Единственным обязательным свойством полезной нагрузки веб-перехватчика является свойство content, значением которого является текстовое сообщение, публикуемое в канале. Обратите внимание, что только текстовые каналы Discord поддерживают веб-перехватчики. Голосовые каналы в Discord не могут использовать веб-перехватчики.

      Вы также можете загружать файлы, вставлять объекты и добавлять вложения в сообщение, отправленное на канал Discord.

      Подробнее о том, как отправить сообщение в канал Discord с помощью веб-перехватчика Discord, нажмите здесь.

      Начало работы с веб-перехватчиками GitHub

      Узнайте, в чем разница между веб-перехватчиками GitHub и действиями, а также как начать работу с веб-перехватчиками GitHub, чтобы начать интегрировать GitHub во внешние рабочие процессы и приложения.

      Руководство по началу работы с Shopify Webhooks

      Узнайте, что такое веб-перехватчики Shopify, как они работают и как настроить веб-перехватчик с помощью интерфейса администратора Shopify, а также с помощью Shopify API.

      Начало работы с веб-перехватчиками CircleCI

      Узнайте, в чем разница между веб-перехватчиками CircleCI и API и как интегрировать веб-перехватчики CircleCI во внешние рабочие процессы и приложения.

      Где я могу найти вебхуки Discord?

      Веб-перехватчики Discord являются компонентом серверов Discord. Таким образом, каждый веб-перехватчик привязан к определенному серверу и подключен к каналу, который находится на этом сервере. Это поможет вам упорядочить веб-перехватчики в соответствии с их назначением.

      Чтобы найти веб-перехватчики, принадлежащие серверу, перейдите на страницу настроек сервера, нажав стрелку вниз рядом с именем сервера, чтобы открыть контекстное меню сервера, как показано ниже:

      Нажмите «Настройки сервера» и выберите «Интеграции» в боковом меню. Там вы можете просмотреть свои веб-перехватчики и создать новые.

      Как добавить вебхук в Discord?

      Существует два способа создания веб-перехватчика Discord: либо через графический интерфейс пользователя (веб или приложение), либо через API Discord. Самый простой способ — через пользовательский интерфейс, и если вы хотите управлять своими веб-перехватчиками Discord в автоматизированных рабочих процессах, рекомендуется добавить веб-перехватчик в Discord.

      Чтобы добавить веб-перехватчик на сервер Discord, выполните следующие действия:

      • Перейдите на страницу интеграции на сервере Discord, как описано выше, и нажмите «Создать веб-перехватчик».
      • Дайте веб-перехватчику описательное имя и выберите канал, на который вы хотите отправлять сообщения.
      • Не забывайте нажимать «Сохранить изменения», когда вносите какие-либо изменения в конфигурацию веб-перехватчика.

      Вот и все! Теперь на ваш сервер добавлен веб-перехватчик для отправки сообщений на выбранный вами канал. Нажмите Копировать URL-адрес веб-перехватчика, чтобы получить URL-адрес веб-перехватчика и использовать его для отправки сообщений из внешних приложений на ваш канал Discord.

      Если вы хотите использовать API для создания веб-перехватчиков Discord и управления ими, вы можете ознакомиться с этим подробным руководством.

      Учебное пособие. Как настроить веб-перехватчики Discord с помощью API

      Узнайте, как использовать API Discord для создания интеграции с веб-перехватчиком. Следуйте пошаговому руководству из примера, в котором мы настроили бота Discord для получения уведомлений от GitHub.

      Пример вебхука Discord

      Ранее мы обсуждали пример использования веб-перехватчиков Discord, в котором финансовый отдел отслеживает ежедневную информацию о продажах, публикуя сводку продаж на своем канале Discord. Это лишь один из многих вариантов использования веб-перехватчиков Discord.

      В этом разделе мы рассмотрим распространенный пример использования веб-перехватчиков Discord среди разработчиков приложений. Разработчики управляют своим кодом с помощью систем контроля версий (VCS), таких как Git, и сотрудничая с другими разработчиками через поставщиков удаленных облачных хранилищ, таких как GitHub.

      В командной среде разработчики часто отправляют код в один и тот же удаленный репозиторий для обновления кодовой базы. Если команда использует Discord для общения, может быть очень полезно получать обновления в режиме реального времени на канале Discord команды, когда разработчик отправляет новое обновление в кодовую базу на GitHub. Вот где на помощь приходят вебхуки Discord.

      С помощью следующих шагов команда может настроить канал связи между GitHub и Discord для получения обновлений на канале Discord команды при отправке нового обновления.

      • Создайте веб-перехватчик Discord на сервере команды, чтобы отправлять сообщения на канал команды.
      • Получить URL-адрес веб-перехватчика для созданного веб-перехватчика.
      • Используйте URL-адрес веб-перехватчика, чтобы создать веб-перехватчик на GitHub и подписаться на событие push (событие push запускается, когда новая фиксация отправляется в репозиторий GitHub).

      При такой настройке каждый раз, когда участник команды отправляет код в репозиторий GitHub, сообщение фиксации отправляется на канал Discord команды. Типичное сообщение фиксации GitHub в канале Discord показано ниже:

      Подробное руководство по этому варианту использования см. в этой статье.

      Учебное пособие. Как настроить веб-перехватчики Discord с помощью интерфейса администратора

      Узнайте, как создавать, редактировать и удалять веб-перехватчики разногласий с помощью страницы настроек с помощью подробного пошагового примера

      Часто задаваемые вопросы о вебхуках Discord

      В этом разделе я собрал несколько часто задаваемых вопросов о веб-перехватчиках Discord. Если ваши вопросы здесь не освещены, я рекомендую вам посетить официальную страницу знакомства с веб-перехватчиками Discord и документацию для разработчиков.

      Заключение

      Попробуйте Hookdeck сегодня

      Мгновенно и надежно управляйте
      своими веб-перехватчиками

      Учебное пособие. Как настроить веб-перехватчики Discord с помощью интерфейса администратора

      Узнайте, как создавать, редактировать и удалять веб-перехватчики разногласий с помощью страницы настроек с помощью подробного пошагового примера

      Учебное пособие. Как настроить веб-перехватчики Discord с помощью API

      Узнайте, как использовать API Discord для создания интеграции с веб-перехватчиком. Следуйте пошаговому руководству из примера, в котором мы настроили бота Discord для получения уведомлений от GitHub.

      Веб-перехватчики могут отправлять сообщения в текстовый канал без входа в систему в качестве бота. Они также могут получать, редактировать и удалять свои собственные сообщения. В discord.js есть множество методов взаимодействия с веб-хуками. В этом разделе вы узнаете, как создавать, получать, редактировать и использовать веб-перехватчики.

      Веб-перехватчики — это утилита, используемая для отправки сообщений в текстовые каналы без использования приложения Discord. Веб-перехватчики полезны для того, чтобы позволить чему-то отправлять сообщения, не требуя приложения Discord. Вы также можете напрямую редактировать или удалять сообщения, отправленные через веб-перехватчик. Есть две структуры для использования этой функциональности: Webhook и WebhookClient. WebhookClient — это расширенная версия Webhook , которая позволяет отправлять через него сообщения без использования бот-клиента.

      Если вы хотите прочитать об использовании веб-перехватчиков через API без discord.js, вы можете прочитать об этом здесь

      Боты, как обычно, получают сообщения веб-перехватчика в текстовом канале. Вы можете определить, отправил ли сообщение веб-перехватчик, проверив, не равен ли Message.webhookId null . В этом примере мы возвращаем значение, если веб-перехватчик отправил сообщение.

      При загрузке веб-перехватчика всегда будут использоваться коллекции и промисы. Если вы не понимаете ни одну из концепций, пересмотрите их, а затем вернитесь к этому разделу. О коллекциях можно прочитать здесь, а промисы здесь и здесь

      открыть в новом окне. Это вернет обещание, которое будет преобразовано в набор веб-перехватчиков.

      открыть в новом окне коллекции, чтобы получить вебхук.

      Если вы не используете бот-клиент, вы можете получить веб-перехватчик, создав новый экземпляр WebhookClient и передав идентификатор и токен в конструктор. Эти учетные данные не требуют наличия приложения-бота, но они также предлагают ограниченную информацию вместо того, чтобы получать ее с помощью авторизованного клиента.

      Вы также можете передать только URL:

      Вы можете создавать веб-перехватчики напрямую через клиент Discord. Перейдите в «Настройки сервера», и вы увидите вкладку «Интеграции».

      Вкладка

      Если вы уже создали веб-перехватчик, вкладка веб-перехватчиков будет выглядеть так: вам нужно будет нажать кнопку View Webhooks.

      Вкладка

      Оказавшись там, нажмите кнопку «Создать веб-перехватчик/Новый веб-перехватчик»; это создаст вебхук. Отсюда вы можете редактировать канал, имя и аватар. Скопируйте ссылку, первая часть — идентификатор, а вторая — токен.

      Создание веб-перехватчика

      Веб-перехватчики могут отправлять сообщения в текстовые каналы, а также извлекать, редактировать и удалять свои собственные. Эти методы одинаковы как для Webhook, так и для WebhookClient .

      Метод открытия в новом окне, используемый для отправки в веб-перехватчик, очень похож на метод, используемый для отправки в текстовый канал. Веб-перехватчики также могут выбирать, как будут отображаться имя пользователя и аватар при отправке сообщения.

      Пример использования WebhookClient:

      Попробуйте найти веб-перехватчик, для которого ваш бот знает токен. Это гарантирует, что ваш бот сможет выполнить веб-перехватчик позже.

      открыть в новом окне, чтобы получить сообщения, ранее отправленные Webhook.

      открыть в новом окне, чтобы редактировать сообщения, ранее отправленные Webhook.

      открыть в новом окне, чтобы удалить сообщения, ранее отправленные Webhook.

      Если вы хотите сравнить свой код с кодом, который мы уже создали, вы можете просмотреть его в репозитории GitHub здесь

      Читайте также:

      ВопросОтвет
      Как связать вебхук с Discord ?Если ваше внешнее приложение поддерживает отправку исходящих сообщений с помощью веб-перехватчиков (например, GitHub, Shopify и т. д.), вы можете использовать URL-адрес веб-перехватчика Discord для настройки веб-перехватчика на этих платформах.
      Являются ли веб-перехватчики Discord бесплатными?На момент написания статьи веб-перехватчики Discord полностью бесплатны.
      Являются ли веб-перехватчики Discord бесплатными? POST или GET?POST
      Какой формат сообщения для веб-перехватчиков Discord?Подробнее о формате сообщения веб-перехватчиков Discord можно можно найти здесь.
      Как просмотреть веб-перехватчик Discord?Перейдите в «Настройки сервера» → «Интеграции», чтобы просмотреть и создать веб-перехватчик.
      Как получить идентификатор канала?Сначала необходимо включить режим разработчика в разделе «Настройки пользователя» → «Дополнительно». Затем вы можете щелкнуть правой кнопкой мыши свой канал, чтобы скопировать идентификатор.
      Могу ли я создать несколько веб-перехватчиков на канале Discord?Да, вы можете создать несколько веб-перехватчиков Discord, нацеленных на один и тот же канал.
      Могу ли я использовать один URL-адрес веб-перехватчика для нескольких внешних приложений?< /td>Да, вы можете использовать один URL-адрес веб-перехватчика для отправки нескольких типов сообщений на канал Discord.
      Могу ли я прикреплять файлы к моему веб-перехватчику Discord? сообщения?Да, вы можете отправлять файлы в сообщениях веб-перехватчиков Discord; узнайте больше здесь.
      Как удалить веб-перехватчик?Вы можете удалить веб-перехватчик Discord, используя кнопку «Удалить веб-перехватчик» в пользовательском интерфейсе. или удалить его с помощью вызова API.
      Где находится API веб-перехватчиков Discord?Документацию по API веб-перехватчиков Discord можно найти здесь.
      Поддерживаются ли веб-перехватчики в голосовых каналах?На момент написания веб-перехватчики Discord поддерживаются только в текстовых каналах.