Как создать вебхук в discord

chapo

колобок опирел

Автор темы
Модератор

(!) Данный гайд создан для людей, которые не разбираются (и не хотят) в луа и просто хотят сделать для себя уведомления.

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

Создание вебхука​

Для начала нам необходимо создать вебхук на вашем сервере в Discord:
Спойлер: Создание вебхука
1. Заходим в настройки сервера

2. Переходим во вкладку «Интеграция» и нажимаем на «Посмотреть вебхуки»

3. Нажимаем на «Новый вебхук»

4. Выбираем канал в который будут отправляться уведомления (остальное настраивать не обязательно, это можно будет изменить в коде скрипта)

5. Нажимаем на «Копировать URL вебхука»
Готово, теперь у нас есть ссылка на вебхук (выглядит она примерно так: https://discord.com/api/webhooks/***/***

Как добавить вебхук в дс через телефон

Изменение внешнего вида​

Теперь нам надо создать внешний вид нашего сообщения, для этого заходим на сайт https://discohook.org/ (не реклама(ахаха)).

1. Настраиваем внешний вид нашего вебхука, например у меня получилось что-то такое:

2. Нажимаем на кнопку «JSON Data Editor»

3. В открывшемся окне нажимаем на «Copy to clipboard»

Написание говнокода​

Теперь нам осталось лишь отправить POST запрос на ссылку вашего вебхука. Я бы мог сказать «На этом все, всем чао», однако многие читатели темы не разбираются в луа, хттп запросах и т.д., так что я просто дам вам готовую функцию отправки:

local effil = require(‘effil’) — подключаем библиотеку effil для отправки запросов local encoding = require(‘encoding’) — подключаем библиотеку encoding для перевода текста из Windows-1251 в UTF-8 local u8 = encoding.UTF8 encoding.default = ‘CP1251’ function SendWebhook(URL, DATA, callback_ok, callback_error) — Функция отправки запроса local function asyncHttpRequest(method, url, args, resolve, reject) local request_thread = effil.thread(function (method, url, args) local requests = require ‘requests’ local result, response = pcall(requests.request, method, url, args) if result then response.json, response.xml = nil, nil return true, response else return false, response end end)(method, url, args) if not resolve then resolve = function() end end if not reject then reject = function() end end lua_thread.create(function() local runner = request_thread while true do local status, err = runner:status() if not err then if status == ‘completed’ then local result, response = runner:get() if result then resolve(response) else reject(response) end return elseif status == ‘canceled’ then return reject(status) end else return reject(err) end wait(0) end end) end asyncHttpRequest(‘POST’, URL, , data = u8(DATA)>, callback_ok, callback_error) end function main() while not isSampAvailable() do wait(0) end sampRegisterChatCommand(‘dw’, function(arg) SendWebhook(‘URL ВАШЕГО ВЕБХУКА’, [[ВАШ JSON]]) sampAddChatMessage(‘DiscordWebhook >> сообщение отправлено!’, -1) end) wait(-1) end

В данном коде мы видим функцию отправки и регистрацию команды в чате, после ввода которой и будет произведена отправка.

Все работает отлично, теперь перейдем к вставке переменных в сообщение. Для того что бы вставить переменную в сообщение мы будем использовать string.format.
Пример вставки переменных:

Еще по теме:  Как сделать много заявок в друзья в дискорд

local MyId = select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)) local MyName = sampGetPlayerNickname(MyId) local MyLvl = sampGetPlayerNickname(MyId) local ServerAddress = table.concat(, ‘:’) SendWebhook(‘https://discord.com/api/webhooks/1036002308410056704/ifuhIPMB2Z4f-Ard35OzHdcuobfrFSLt0mV3oRPLab027FXPc9D6aMWLKa8vu3aWA2ij’, ([[ < «content»: null, «embeds»: [ < «description»: «**Ник:** `%s`n**Уровень:** `%s`n**Айди:** `%s`n**Сервер:** `%s`», «color»: 16711757 >], «attachments»: [] >]]):format(MyName, MyLvl, MyId, ServerAddress))
Спойлер: OLD

Всем ку привет здарова, сегодня покажу вам как отправлять такие сообщения на сервер discord от скрипта, так же в конце будет пример стиллера с таким сообщением:

Спойлер: 1. Создание вебхука
1. открываем настройки сервера

2. переходим во вкладку «интеграции» и нажимаем на «создать вебхук»

3. выбираем канал отправки (остальное можно не менять, так как аватарку и ник можно настраивать в коде скрипта)

4. нажимаем на «Копировать URL вебхука»
5. в коде меняем значение переменной URL на ранее скопированный юрл

Спойлер: 2. Код с пояснениями
Пример отправки сообщения через команду /ds.msg [text]

local encoding = require ‘encoding’ — подключаем для корректной отправки русских букв encoding.default = ‘CP1251’ u8 = encoding.UTF8 local sampev = require ‘lib.samp.events’ — подключаем для хука отправки ответа на диалог local effil = require ‘effil’ — для ассинхронных запросов local url = ‘URL’ local data = < [‘content’] = », — текст (меняется через команду, так что можно оставить пустым) [‘username’] = ‘Sended from .lua script!’, — ник отправителя [‘avatar_url’] = ‘https://c.tenor.com/Z9mXH7-MlcsAAAAS/sexy-black-man-thirst-trap.gif’, — ссылка на аватарку (можно убрать, будет дефолтная) [‘tts’] = false, — tts — text to speech — читалка сообщений (true/false) — так же можно сделать еще много чего, подробнее тут: https://discord.com/developers/docs/resources/webhook >function main() while not isSampAvailable() do wait(0) end sampRegisterChatCommand(‘ds.msg’, function(arg) data[‘username’] = sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))) — ник отправителя = ник в игре data[‘content’] = arg — делаем что бы текст сообщения был равен тексту который мы ввели после команды — отправляем запрос asyncHttpRequest(‘POST’, url, , data = u8(encodeJson(data))>, function(response) print(‘[WebHook] [OK] отправлено!’) end, function(err) print(‘[WebHook] [ERROR] error: ‘..err) end) end) wait(-1) end — функция для отправки ассинхронных сообщений function asyncHttpRequest(method, url, args, resolve, reject) local request_thread = effil.thread(function (method, url, args) local requests = require ‘requests’ local result, response = pcall(requests.request, method, url, args) if result then response.json, response.xml = nil, nil return true, response else return false, response end end)(method, url, args) — Если запрос без функций обработки ответа и ошибок. if not resolve then resolve = function() end end if not reject then reject = function() end end — Проверка выполнения потока lua_thread.create(function() local runner = request_thread while true do local status, err = runner:status() if not err then if status == ‘completed’ then local result, response = runner:get() if result then resolve(response) else reject(response) end return elseif status == ‘canceled’ then return reject(status) end else return reject(err) end wait(0) end end) end

Источник: www.blast.hk

Что такое Вебхуки в Дискорде: инструкция по добавлению!

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

Что такое Webhook

Для начала отметим, что вебхуки в Дискорде — система, предусматривающая автоматическое информирование о разных событиях, которые произошли на конкретном сайте. В качестве посредника выступает webhook, состоящий из трех элементов:

  1. Субъекты — сайты, в которых создаются вебхуки Дискорд (репозитарий).
  2. Информация — данные о произошедших событиях, которые отправляют webhook в Discord при срабатывании на триггер. В большинстве случаев в роли такого источника информации выступает push-сообщение.
  3. Ссылка — конечный пункт, куда webhook передает определенные данные.
Еще по теме:  Как поставить музыкального бота в discord

Зачем эта функция нужна в Дискорде

Вебхуки для Дискорда — некий посредник (мост), между интернет-сайтами, позволяющий им обмениваться информацией в автоматическом режиме. Минус в том, что использовать webhook Discord на данном этапе можно не со всеми сервисами.

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

Стоит учесть, что применение webhook требует наличие второго сайта. При этом далеко не все ресурсы поддерживают этот сервис, что пока является главным недостатком системы.

Автоматическая отправка сообщений доступна для следующих площадок:

Параллельно с этим использование вебхуков в Дискорд невозможно на ряде других сайтов:

  • YouTube;
  • Twitch;
  • Facebook (запрещен(а) в РФ);
  • Nelly The Hamster.

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

Как создать webhook в Дискорде

После изучения особенностей и назначения опции можно переходить и рассмотрению следующего вопроса — как создать вебхук в Discord. Алгоритм действий имеет следующий вид:

  • Войдите в программу Дискорд и авторизуйтесь под своим логином и паролем (если это не сделано ранее).
  • Жмите правой кнопкой на название интересующего сервера.
  • В выпадающем перечне выберите пункт Настройки сервера.
  • Выберите пункт Вебхуки .

  • Кликните на пункт Создать вебхук.

  • Укажите имя. Эта информация прописывается автоматически, но ее можно поменять.
  • Выберите канал, для которого создается webhook.
  • Загрузите изображение. Для этого жмите на соответствующую кнопку и укажите направление к файлу. Размер картинки должен быть от 256х256 (рекомендуется). В крайнем случае допускается минимальный размер 128х128.
  • Опуститесь вниз и жмите на ссылку Копировать . Полученный URL будет использоваться для интеграции с другим ресурсом.
  • Кликните кнопку Сохранить .

Выше мы отмечали, что сама по себе ссылка бесполезна. Необходимо знать, как пользоваться вебхуками в Дискорде, и где их применить. Для примера рассмотрим, как использовать полученный URL-адрес на сайте Github.

Алгоритм действий такой:

  • Получите URL адрес, по которому вы планируете получать сообщения. Как сделать вебхуки в Дискорде, мы рассматривали выше.
  • Войдите на сайт GitHub , перейдите в настройки и меню webhooks. Таким способом вы определяетесь с репозитарием, который будет использоваться для обмена.
  • Жмите на кнопку Add webhooks и введите скопированный ранее адрес.
Еще по теме:  Как сделать аватарку для дискорда

  • Данные необходимо добавить в строку Payload URL.
  • К полученной ссылке добавьте в конце через слеш (/) надпись gthub. К примеру, исходная ссылка может иметь следующий вид — discordapp.com/api/webhooks/71043261975575624/f_MvYH5-2h0foH47kxW50hMASijFRe29mSBkt6VfanIJPD_98nvGa-0cc0TqYp1an17K. При добавлении на сайт она должна быть следующей — discordapp.com/api/webhooks/710432631975575624/f_MvYH5-2h0foH47kxW50hMASijFRe29mSBkt6CfanIJPD_98nvGa-0cc0TqYp1an17K /github .

Дополнительно к URL-адресу необходимо определиться с опциями GitHub. В секции Content Type выберите application/json. Практика показала, что формату вебхуков Дискорд подходит JSON. На следующем шаге настройте ивент триггеры, используемые при передаче в сообщении. Здесь доступен один из трех вариантов:

  • только пуш-события;
  • отправление всего;
  • информирование только о персональных событиях.

Как только настройки сделаны, а данные введены в URL-строку, можно сохранять внесенные сведения. Для этого жмите соответствующую кнопку.

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

Итоги

Теперь вы знаете, что такое webhook в Дискорде, для чего они применяются, как их создать и интегрировать в другие сервисы. Это полезная опция, которую важно правильно применять и не забывать об имеющихся ограничениях. Минус только один. Пока webhook доступен для небольшого числа сервисов, но в дальнейшем этот список будет расширяться.

Источник: messenge.ru

Как настроить Webhooks для Twitter/YouTube/Twitch в Discord

Иногда у вас может появиться необходимость запостить в группе Discord ссылку на новое видео с канала YouTube или сообщение с Twitter-аккаунта, не заходя в Discord. Вы можете создать бота и запускать его с локальной машины или же воспользоваться функцией Webhooks, которая будет публиковать контент в мессенджере. Некоторые сайты, такие как GitHub, CircleCI или DataDog, в своем интерфейсе уже имеют подобную привязку. И все, что вам нужно сделать — это связать сайты и бота на канале. Подробная инструкция находится на официальном сайте Discord’a. На ней мы задерживаться не будем. Ведь нас интересуют ресурсы, у которых изначально нет такой фишки. В этом случае на помощь приходят сайты, которые послужат посредником между нашими сервисами. Один из самых простых — IFTTT. С его помощью мы и настроим Webhook для необходимой платформы. Для этого:

  • Перейдите на IFTTT и зарегистрируйстесь/войдите в систему

  • Кликните на иконку пользователя и нажмите «Create»

  • Выберите из списка социальную сеть. В нашем случае это будет Twitter

  • Выберите «New tweet by a specific user»

  • Ввведите Twitter пользователя, за которым вы будете следить, и кликните на «Create trigger»

  • Перейдите на сервер Discord и откройте настройки сервера

Перейдите во вкладку Вебхуки и нажмите на Создать вебхук

Поменяйте ему имя и выберите канал, в котором хотите, чтобы он писал (также загрузите аватарку по желанию). После этого скопируйте URL вебхука и вернитесь на IFTTT

  • Заполните поля:
  • В URL введите ссылку на ваш URL вебхука
  • В Method выберите Post
  • В Content type выберите application/json
  • В Body скопируйте и вставьте следующий текст:

Вот и все. Теперь на нашем канале будут появляться посты из закрепленного Twitter-аккаунта. По аналогии делается привязка к Twitch-трансляциям и каналу на YouTube.

Источник: click-storm.ru

Рейтинг
( Пока оценок нет )
Загрузка ...