Статья [Discord webhooks] что это такое на примере fatality

  • 20
  • 1
  • 12
Вообще, webhook дословно это сетевая загвоздка. На примере Дискорда она позволяет нам отправлять post запросы нашему вебхуку, чтобы тот отправлял сообщение в канал.
Сам post запрос должен иметь вид json таблицы, подробнее о содержании её можно прочитать тут - Discord Developer Portal — API Docs for Bots and Developers [EN].
Разберем пример на базе lua fatality, как я сказал выше - мы отправляем post запрос нашему вебхуку, значит надо его создать.
Важно! Это только для дискорд-серверов, в лс или в беседах так нельзя.
1. Переходим в настройки сервера
1670526059221.png
2. Переходим в интеграцию->вебхуки
1670526122174.png
3. Создаём вебхук, жмём на него, откроется меню настроек. Пока что нас интересует только ссылка на вебхук, копируем её.
Она должна быть вида
Отлично, теперь мы можем отправить на этот вебхук post запрос. Из api fatality Utilities - Fatality API мы пока что берем только функцию пост запроса.
В описании функции мы видим какие аргументы нужны для функции
url - это наша ссылка на вебхук, запишем это так
Lua:
local webhook = "https://discord.com/api/webhooks/*********************/наш_токен"
headers - или же заголовки, оставим то, что даётся в примере
Lua:
local headers = "Content-Type: application/json"
body - это то, что мы будем отправлять вебхуку, таблица должна иметь формат json, мы можем сделать сначала обычную таблицу, а потом перевести в json с помощью функции
Мы отправим только сообщение, подробнее о том, что можно отправить есть на Discord Developer Portal — API Docs for Bots and Developers [EN].
Lua:
local body = {['content'] = "Hello World!"}
body = utils.json_encode(body)
остался последний аргумент, это ответ от вебхука, если всё прошло успешно, то нам вернет пустую строку, запишем функцию так
Lua:
local response_fn = function(response)
    if response and response ~= "" then
        print(response)
    end
end
ну вот практически всё, осталось заполнить пост запрос аргументами и наблюдать, как бот пишет Hello World!
Lua:
utils.http_post(
    webhook,
    headers,
    body,
    response_fn
)

Lua:
local webhook = "https://discord.com/api/webhooks/*********************/наш_токен"
local headers = "Content-Type: application/json"
local body = {['content'] = "Hello World!"}
body = utils.json_encode(body)
local response_fn = function(response)
    if response and response ~= "" then
        print(response)
    end
end
utils.http_post(
    webhook,
    headers,
    body,
    response_fn
)
1670527428795.png

Я использую это для логирования выстрелов
1670527449329.png
 
Последнее редактирование:
  • 663
  • 1
  • 389
Стоит также учитывать, что любой у кого есть твоя ссылка(ака вебхук) может отправлять сообщения в определенный канал.
Т.е ликать ее не стоит от слова совсем
 
  • 7
  • 1
Контакты для связи отсутствуют.
а можно сделать чтоб нейм дса типа кто подгрузил был?
Вообще, webhook дословно это сетевая загвоздка. На примере Дискорда она позволяет нам отправлять post запросы нашему вебхуку, чтобы тот отправлял сообщение в канал.
Сам post запрос должен иметь вид json таблицы, подробнее о содержании её можно прочитать тут - Discord Developer Portal — API Docs for Bots and Developers [EN].
Разберем пример на базе lua fatality, как я сказал выше - мы отправляем post запрос нашему вебхуку, значит надо его создать.
Важно! Это только для дискорд-серверов, в лс или в беседах так нельзя.
1. Переходим в настройки сервера
2. Переходим в интеграцию->вебхуки
3. Создаём вебхук, жмём на него, откроется меню настроек. Пока что нас интересует только ссылка на вебхук, копируем её.
Она должна быть вида
Отлично, теперь мы можем отправить на этот вебхук post запрос. Из api fatality Utilities - Fatality API мы пока что берем только функцию пост запроса.
В описании функции мы видим какие аргументы нужны для функции
url - это наша ссылка на вебхук, запишем это так
Lua:
local webhook = "https://discord.com/api/webhooks/*********************/наш_токен"
headers - или же заголовки, оставим то, что даётся в примере
Lua:
local headers = "Content-Type: application/json"
body - это то, что мы будем отправлять вебхуку, таблица должна иметь формат json, мы можем сделать сначала обычную таблицу, а потом перевести в json с помощью функции
Мы отправим только сообщение, подробнее о том, что можно отправить есть на Discord Developer Portal — API Docs for Bots and Developers [EN].
Lua:
local body = {['content'] = "Hello World!"}
body = utils.json_encode(body)
остался последний аргумент, это ответ от вебхука, если всё прошло успешно, то нам вернет пустую строку, запишем функцию так
Lua:
local response_fn = function(response)
    if response and response ~= "" then
        print(response)
    end
end
ну вот практически всё, осталось заполнить пост запрос аргументами и наблюдать, как бот пишет Hello World!
Lua:
utils.http_post(
    webhook,
    headers,
    body,
    response_fn
)

Lua:
local webhook = "https://discord.com/api/webhooks/*********************/наш_токен"
local headers = "Content-Type: application/json"
local body = {['content'] = "Hello World!"}
body = utils.json_encode(body)
local response_fn = function(response)
    if response and response ~= "" then
        print(response)
    end
end
utils.http_post(
    webhook,
    headers,
    body,
    response_fn
)
Посмотреть вложение 42320
Я использую это для логирования выстрелов
Посмотреть вложение 42321
 
Сверху Снизу