Итак, я пишу приложение на C #, которое должно отправлять сообщения через Discord Webhooks. Я бы хотел, чтобы можно было отправлять файлы. Возможно ли это и как мне это сделать? Прямо ниже мой код для отправки обычных сообщений без файла.
sendWebHook ((webHook), string.Concat(new string[] ), «webhook test»);
Буду рад, если мне кто-нибудь поможет. 🙂
MaBoiii 30 Мар 2020 в 16:27
Невозможно отправлять файлы через веб-хук Discord. С ним можно отправлять только полезную нагрузку. Изображения могут отображаться на Discord, но это делается через URL-адреса изображений. Вы не отправляете сами изображения.
Tin Nguyen
30 Мар 2020 в 16:33
Хорошо. попробую потом сделать бота сделать ссылку на скачивание потом
30 Мар 2020 в 17:50
3 ответа
Лучший ответ
Я проверил API, и это кажется возможным. См. здесь.
Вам необходимо уточнить заголовок: Content-Type: multipart/form-data
Я думаю, вам нужно уточнить каталог файлов. (См. Справку по файловому объекту)
Как писать от имени бота с рамками текста? / Вебхуки Дискорд
Информация: Я не знаю, как писать код на C #, но есть пакет nodejs с sendFile ( ) функция. Так что это определенно возможно.
Dorian349 30 Мар 2020 в 17:53
На самом деле в .net 4.5 и выше есть более простой подход. В приведенном выше примере для отправки текстового файла используется URL-адрес веб-перехватчика. Вы можете изменить его по своему усмотрению.
Я использовал MultipartFormDataContent, чтобы указать содержимое файла, используя байты, тип файла, отображаемое имя файла.
(new MultipartFormDataContent()).Add( ByteArrayContent, //fill it with byte array of your file File_Type, //Specify file type e.g Photo Document etc DisplayFilename //This name would be shown as your filename );
Помните, что вам также нужно ссылаться на System.Net.Http.dll .
Gray Programmerz 17 Фев 2021 в 15:57
Вы можете отправлять файлы, вы делаете это вот так!
Скрипт разработан для единства, но его можно легко изменить и применить где-нибудь еще 🙂
private static readonly Encoding encoding = Encoding.UTF8; public static HttpWebResponse MultipartFormDataPost(string postUrl, string userAgent, Dictionary postParameters) < string formDataBoundary = String.Format(«———-«, Guid.NewGuid()); string contentType = «multipart/form-data; boundary=» + formDataBoundary; byte[] formData = GetMultipartFormData(postParameters, formDataBoundary); return PostForm(postUrl, userAgent, contentType, formData); > private static HttpWebResponse PostForm(string postUrl, string userAgent, string contentType, byte[] formData) < HttpWebRequest request = WebRequest.Create(postUrl) as HttpWebRequest; if (request == null) < Debug.LogWarning(«request is not a http request»); throw new NullReferenceException(«request is not a http request»); >// Set up the request properties. request.Method = «POST»; request.ContentType = contentType; request.UserAgent = userAgent; request.CookieContainer = new CookieContainer(); request.ContentLength = formData.Length; // Send the form data to the request. using (Stream requestStream = request.GetRequestStream()) < requestStream.Write(formData, 0, formData.Length); requestStream.Close(); >return request.GetResponse() as HttpWebResponse; > private static byte[] GetMultipartFormData(Dictionary postParameters, string boundary) < Stream formDataStream = new System.IO.MemoryStream(); bool needsCLRF = false; foreach (var param in postParameters) < if (needsCLRF) formDataStream.Write(encoding.GetBytes(«rn»), 0, encoding.GetByteCount(«rn»)); needsCLRF = true; if (param.Value is FileParameter) < FileParameter fileToUpload = (FileParameter)param.Value; string header = string.Format(«—rnContent-Disposition: form-data; name=»»; filename=»»rnContent-Type: rnrn», boundary, param.Key, fileToUpload.FileName ?? param.Key, fileToUpload.ContentType ?? «application/octet-stream»); formDataStream.Write(encoding.GetBytes(header), 0, encoding.GetByteCount(header)); formDataStream.Write(fileToUpload.File, 0, fileToUpload.File.Length); > else < string postData = string.Format(«—rnContent-Disposition: form-data; name=»»rnrn», boundary, param.Key, param.Value); formDataStream.Write(encoding.GetBytes(postData), 0, encoding.GetByteCount(postData)); > > // Add the end of the request. Start with a newline string footer = «rn—» + boundary + «—rn»; formDataStream.Write(encoding.GetBytes(footer), 0, encoding.GetByteCount(footer)); // Dump the Stream into a byte[] formDataStream.Position = 0; byte[] formData = new byte[formDataStream.Length]; formDataStream.Read(formData, 0, formData.Length); formDataStream.Close(); return formData; > public class FileParameter < public byte[] File < get; set; >public string FileName < get; set; >public string ContentType < get; set; >public FileParameter(byte[] file) : this(file, null) < >public FileParameter(byte[] file, string filename) : this(file, filename, null) < >public FileParameter(byte[] file, string filename, string contenttype) < File = file; FileName = filename; ContentType = contenttype; >>
Источник: question-it.com
Вебхуки в Дискорде: что это такое?
Во-первых, давайте посмотрим, что такое веб-перехватчики Discord и для чего они нужны. В общем, это метод увеличения функциональности приложения с помощью обратных вызовов. Последние могут обслуживаться разработчиками или пользователями, которые не обязательно связаны с программой. Термин «вебхук» был придуман Джеффом Линдси в 2007 году.
Discord Webhook php — дополнительная опция. С его помощью участник программы получает автоматические уведомления об обновлении данных по текстовому каналу.
Интеллектуальное управление веб-перехватчиком позволяет получать данные с других платформ. При создании окончательного сервера php Webhook на Discord пользователь генерирует адрес Webhook, который можно отправить различным службам и привязать их к Discord.
Как пользоваться
Приложение php Discord Webhook требует подключения другого интернет-ресурса. Но следует учитывать, что не все сервисы способны передавать данные по этому каналу. Перед использованием веб-перехватчиков важно понять, в какой службе они поддерживаются.
Веб-перехватчик PHP работает на таких сайтах:
Есть несколько сервисов, которые не могут работать с Webhooks:
- Сокращение;
- Facebook;
- YouTube;
- Хомяк Нелли.
Это моменты, которые следует учитывать перед использованием Discord Webhook php для обновления вашего сервера.
Если вы решили обновить сервер Discord с помощью инструкций или pull-запросов от GitHub, DataDog или других служб, сделайте следующее:
- Войдите в Discord и войдите в систему (если вы еще не входили в систему со своими данными).
- Слева найдите интересующий вас сервер и щелкните его правой кнопкой мыши.
- Зайдите в настройки сервера.
- В раскрывающемся списке найдите раздел Webhook (это Discord Webhook php).
- Нажмите кнопку «Создать веб-перехватчик.
- Задайте имя и выберите канал из раскрывающегося списка.
- Загрузите свое изображение. Система рекомендует использовать размер 256 x 256, а минимальный параметр должен быть от 128 x 128 и выше.
- Нажмите кнопку «Сохранить.
Затем созданный php Discord Webhook появится в списке с именем, информацией о сервере и датой создания. Кнопка Изменить доступна с правой стороны. Щелкнув по нему, вы можете внести изменения в ранее заданное имя, канал или изображение.
Официальный пример: интеграция Webhook GitHub
Обратите внимание, что описанная выше последовательность действий позволяет вам разработать веб-перехватчик в программном обеспечении Discord и сделать личные настройки в кратчайшие сроки. Однако следует помнить, что функция не работает в автономном режиме — необходимо обязательно настроить взаимодействие с другими виртуальными платформами. Если функциональные параметры установлены правильно, применима опция для мгновенной отправки кода или обновления текстового канала сервера аргументов.
Последовательность действий проста и предполагает следующие инструкции:
- Изначально вам нужно зайти на discordapp.com.
- После авторизации в личном кабинете перейдите в настройки с последующим выбором функции создания.
- Щелкнув правой кнопкой мыши на интересующем сервере, чтобы вызвать функцию настроек.
- Ввод уникального личного имени для тематического канала, загрузка привлекательного изображения при условии, что пользователь ранее не выполнял указанные действия.
- Следующим шагом является копирование уникального URL-адреса.
Далее вам необходимо скопировать полученную ссылку на портал репозитория, с которого вы планируете получать соответствующие обновления в будущем на специализированном сервере программного обеспечения Discord.
Затем пользователь нажимает кнопку, чтобы добавить рассматриваемую функцию с обязательной вставкой ранее полученной уникальной ссылки в специально отведенное поле.
На последнем этапе пользователю рекомендуется проверить правильность указанной ссылки. Обратите внимание, что это ключевой фактор, от которого напрямую зависит правильное функционирование прибора. Не забудьте прикрепить соответствующий заголовок в конце github.
Также рекомендуется включить параметр application / json в специально разработанной категории Content Type. Далее пользователь выбирает триггеры событий, которые впоследствии используются при обмене информацией в сообщениях.
Последним шагом дополнительных настроек является нажатие кнопки «Добавить веб-перехватчик», которая находится под формой уведомления. Сохраните результаты, чтобы обеспечить бесперебойную работу функции.
Обратите внимание, что после выполнения представленной последовательности действий любое обновление в репозитории, в том числе корректировка данных в режиме «редми», автоматически отображается в тематическом текстовом канале программы. В конце концов, соответствующая ссылка на функцию будет автоматически сгенерирована по адресу discordapp.com/api/webhooks/698070180693278780/XG1VRZQ8cGnCEG9wNjbvpSk605AugbK3HQ9Hxk8aJ9bm1MCfsL6gFSqV3U-SZkdxY0.
Подключение вебхуков и настройка
Использование специализированного программного обеспечения Discord Webhook требует, чтобы у пользователя было высококачественное интернет-соединение с другой платформой. Однако необходимо обратить внимание на то, что не все порталы способны обеспечить обмен информацией. Поэтому перед подключением функции пользователям рекомендуется ознакомиться с поддерживаемыми сайтами:
Однако следующие порталы не поддерживаются функцией Webhook:
- Сокращение;
- Facebook;
- YouTube;
- Хомяк Нелли.
Представленные функции позволяют исключить вероятность негативных последствий при использовании программного обеспечения с функцией Webhook для обновления сервера. В противном случае последовательность подразумевает следующую последовательность действий:
- Программное обеспечение Discord запускается с последующей авторизацией в личном кабинете. При отсутствии учетной записи заполняется регистрационная форма.
- В левой части панели управления пользователь выбирает конкретный тематический сервер из списка, представленного щелчком правой кнопкой мыши.
- Следующим шагом будет переход в раздел настройки.
- Во вновь открывшейся форме нужно перейти в подкатегорию Webhooks.
- Ниже приводится уникальное имя сервера.
- Далее активируется ключ создания веб-перехватчика.
- Следующим шагом будет загрузка интересующего изображения.
Обратите внимание, что рекомендуется использовать стандартный формат 256×256.
Клавиша нажимается для сохранения полученных результатов.
После внесения изменений программа автоматически отображает созданный веб-перехватчик с уникальным именем, а также полную информацию об интересующем сервере и дате разработки. При необходимости вы можете внести изменения, нажав соответствующую кнопку в категории настроек.
Создаем сервер
Перед созданием вебхуков в репозитории вам необходимо выделить для него отдельный сервер, на который будут приходить уведомления. Отличительной особенностью системы Webhooks является возможность интеграции их в разные приложения или сервисы — это не только Discord, но и многие другие Telegram, Битрикс24 и многие другие.
Чтобы воспользоваться опцией веб-перехватчика Discord, как упоминалось выше, вам необходимо создать отдельный сервер.
Для этого выполняем следующие действия:
- Запускаем приложение.
- Давайте нажмем на большой серый знак плюса, который находится под всеми уже созданными серверами в левой части главного экрана, и создадим новый север.
- Затем щелкните по вновь созданному серверу левой кнопкой мыши и выберите в раскрывающемся окне пункт «Настройки сервера.
- Далее откроются настройки самого сервера и среди всех необходимых нам элементов вкладка Webhook. Щелчок по этому элементу откроет новое окно с правой стороны, в котором мы нажмем кнопку «Создать веб-перехватчик.
- Нажав на кнопку «Создать веб-перехватчик», система перенесет вас в новое диалоговое окно, где вам нужно будет ввести следующие данные: имя создаваемого веб-перехватчика, канал, по которому будут отправляться уведомления — по умолчанию, специальный # в Discord создан общий канал. Вы также можете вставить значок для создаваемого сервера, а также указать триггер, при котором веб-перехватчик будет срабатывать и отправлять уведомление на сервер.
В столбце URL созданного веб-перехватчика URL появится автоматически — его нужно скопировать. Затем этот URL-адрес будет действовать как конечная точка при отправке веб-перехватчиков. После ввода всех необходимых для системы данных мы сохраняем.
Интеграция Дискорда с другим сервисом
Чтобы интегрировать Discord с другим сервисом, таким как YouTube или Twitch, вам нужно будет использовать веб-сайт ifttt.com. Именно он делает использование различных социальных сетей и управление ими простым и удобным
- Для начала вам необходимо зарегистрироваться на сайте, что не займет много времени.
- Перейдите на главную страницу и в столбце «Услуги поиска» начните вводить название нужного вам сайта.
- Выберите его из списка, щелкнув по нему.
- В следующем окне откроются доступные функции взаимодействия, такие как уведомление запущенных пользовательских потоков или выпуск нового видео.
- Выберите нужное действие и настройте его. Например, чтобы настроить уведомление о потоке, вам нужно выбрать стримера из списка.
- Щелкните «Создать активатор».
- Затем вернитесь на главную страницу и в строке поиска начните вводить «Webhooks», выберите его.
- Нажмите «Сделать веб-запрос».
- В строке «URL» вставьте ссылку на веб-перехватчик и в поле «Метод» выберите «POST». В разделе «Тип содержимого» необходимо выбрать «application / json».
- В поле «Body» напишите текст автоматического сообщения с помощью конструкции: и добавьте ссылку на него с помощью кнопки «Добавить ингредиент» и выберите «ChannelURL» из списка».
- Нажмите «Создать действие», а затем «Готово», чтобы создать действие и завершить его.
Таким образом можно создать интеграцию с любым другим сервисом: выбор на сайте очень широк.
- https://kaknastroitt.ru/vebhuki-diskorda-kak-nastroit-i-polzovatsja/
- https://qna.habr.com/q/865051
- https://discordik.ru/instrukcii/vebhuki/
- https://discord-ms.ru/instruktsii/vebhuki/
- https://it-tehnik.ru/discord/vebhuk.html
Источник: odiscorde.ru
Как в Discord сделать оповещение о предстоящем стриме
Discord — это бесплатный мессенджер, в котором участники игрового сообщества обмениваются видео и сообщениями. Перед выходом в эфир, вы можете отправить своим подписчикам уведомления, чтобы они могли узнать о начале трансляции. Разберем пошагово, как сделать оповещение в Дискорде о стриме, используя Webhook, какие боты специализируется для таких целей, и как с ними работать.
Как сделать оповещение в Discord о стриме через Вебхук
Любой сервер в приложении имеет возможность добавить вебхук. Благодаря недавно установленной опции вы можете получать сообщения с любых сервисов. Такой вариант отлично подойдет при запуске стрима, когда у вас нет желания готовить анонс в чате. Тем более это достаточно долгая процедура. Данный функционал справляется с отправкой уведомлений в различные соцсети и мессенджеры, что привлечет к вашему стриму еще больше пользователей. Для автоматизации процесса используйте несложный алгоритм:
- Откройте в Дискорде раздел «Настройки сервера».
- Перейдите на вкладку «Webhooks».
- Создайте новый вебхук, и дайте боту название.
- Загрузите его изображение, после чего скопируйте URL Webhook.
- Для применения опция нажмите кнопку «Сохранить».
Обратите внимание! Webhook относительная новая опция на Дискорде, которая станет отличным помощником для стримеров.
Для работы вам потребуется запомнить две основные команды, которые будут использованы хотя бы раз за все время. С остальными можно ознакомиться в официальном руководстве, и их необязательно запоминать:
- «content». Данная команда устанавливает текст, который выводится вебхуком. Его длина до 2000 символов.
- «embeds». Команда массива вложенных объектов в сообщении. То есть, вы сможете указать более одного объекта всего в одном сообщении.
Как сделать оповещения в Дискорде через ботов
Боты для стримов в мессенджере существуют. Но пока что все в стадии активного тестирования, и discord api через ЛК юзера не поддерживает опцию стриминга. Тематический бот для стримера приглашается в ПО, и одними из адаптированных автопомощников будут Rythm, а также Groove. Для их использования на своем канале потребуется следующее:
- Откройте личный кабинет в приложении.
- Из представленных списков выберите тематический сервер.
- Перейдите в раздел «carbonitex», где есть полная информация, как вносить пользовательские настройки.
В случае появления трудностей с формированием приглашения бота, либо его настройками, всегда можно обратиться в техподдержку Дискорда. Через форму обратной связи в круглосуточном сервисе ответы поступают достаточно быстро.
Специально разработанный бот способен оповещать о начале вашего стрима, через специализированные источники. Среди них можно отметить Goodgame, Twitch, Peka2.tv, и даже FB. Можно тестировать свой стрим, добавлять и удалять оповещения, оставлять оповещения на зарегистрированных каналах, сообщать, что началась трансляция, и даже оформить анонс.
Для любого действия предусмотрены свои команды, идущие в описании к каждому боту. Команда прописывается в специальную командную строку.
Частые вопросы:
- Как включить звук в стриме в Дискорд Онлайн
- Что такое Дискорд Онлайн, и как им пользоваться
- Как смотреть фильм вместе с другом в Дискорд Онлайн
- Как добавить чатбота для автоматических ответов в чате Discord
Источник: discord-online.ru