Здравствуйте, есть ли способ автоматически создавать посты в Discourse из сообщений в Discord?
Привет, Сэм! Добро пожаловать в наше сообщество. Посмотрите: Set up Discord notifications with the discourse-chat-integration plugin
В будущем попробуйте использовать поиск
. Многие вопросы уже обсуждались здесь, а поиск отлично помогает их найти.
Спасибо, но я уже посмотрел, и это не то, что мне нужно. Это интеграция Discourse в Discord, а не Discord в Discourse.
Пример сценария:
В канале Discord появляется сообщение, которое затем отправляется в Discourse, где создается тема с этой информацией.
Интеграция с чатом может это сделать в Slack; вы ищете функцию публикации расшифровок для Discord.
Спасибо, значит, автоматизированного способа сделать это нет
Вы можете сделать это с помощью пользовательского бота Discord, который копирует содержимое сообщений и отправляет POST-запрос на ваш форум.
Это потребует дополнительного хостинга, если только вы не захотите написать своего бота на discordrb и использовать плагин на вашем форуме.
Попробуйте использовать это:
https://meta.discourse.org/t/how-to-connect-discourse-with-hundreds-of-apps-using-integromat/
Спасибо, я попробовал это, но по какой-то причине не могу настроить переменную с правильным ID сообщения так, чтобы она работала.
Их техническая поддержка, скорее всего, поможет вам разобраться в этом.
Как это будет работать с точки зрения разрешений и вызова?
Вы хотите копировать все сообщения или только сообщения из определённого канала? Будут ли они все добавляться в одну тему? Что станет причиной создания новой темы?
Имеют ли все пользователи Discord право на это?
Где это будет размещено? Без категории?
Только сообщения в канале, где была вызвана команда, желательно до указанной точки остановки.
Более изящный способ сделать это:
- нажмите «Ответить» на первом сообщении, которое нужно опубликовать
- напишите @ВашАcountDiscourseIntegrationBot, при желании добавив в конце
transcriptили его перевод - Будет опубликована стенограмма от этого сообщения до текущего момента, ограниченная примерно 50 сообщениями, в Discourse от имени пользователя, если это возможно
Можно сделать ещё интереснее, если разрешить интерактивный ввод, например, установить пользовательскую точку остановки, исключить некоторые сообщения или выбрать целевую категорию. Это лучший UX, который я могу предложить без постоянных вопросов и ответов.
На самом деле сделать это интерактивным довольно просто:
const BASE_URL = "https://discourse.example.com";
// предварительные условия:
// msg.type == REPLY (19)
// msg.mentions или msg.mention_roles содержит бота
// это на JS, но должно быть на Ruby
function onMentionWithReply(msg) {
discord.sendMessage({
content: "<" + BASE_URL +
"/chat-integration/discord/make-transcript/" +
msg.channel_id + "/" +
msg.message_reference.message_id + ".." + msg.id +
">";
type: REPLY,
message_reference: { message_id: msg.id },
});
}
Где /chat-integration/discord/make-transcript/:channel_id/:id1..:id2 будет отображать интерактивную страницу в Discourse, где можно просмотреть сообщения и подтвердить их.
Возможные проблемы:
- Необходимо проверять права доступа пользователя, переходящего на эту страницу, чтобы избежать неправомерного раскрытия стенограмм.
В данный момент у меня есть ссылка из Slack в Trello, из Trello в Discord, поэтому я хотел бы, чтобы сообщения автоматически публиковались в Discord, или, возможно, Trello создавала новый пост в конкретной теме.
Слишком много мест для публикаций и недостаточно времени! ![]()
Спасибо, я посмотрю на это
Ой! Извините. Я не знал, что эта интеграция не работает в обоих направлениях, как интеграция со Slack.
Вообще-то мне интересно: зачем вам это нужно? Вы захламите долговременную память на Discourse пустыми разговорами.
Без проблем, посты в канале, которые я хочу публиковать в Discourse, — это анонсы новых обновлений игры. Публиковать одно и то же в нескольких местах очень трудоёмко, а Discourse часто остаётся без внимания. Поэтому я пытаюсь сократить свою нагрузку и одновременно надеюсь повысить активность в Discourse.
Ладно, я нашёл обходной путь, который, полагаю, придётся использовать.
Мне пришлось воспользоваться Zapier (минус в том, что бесплатного тарифа недостаточно для обработки всех постов), чтобы связать Trello с Discourse и ответить в созданную для этого тему.
Теперь процесс выглядит так:
API из базы данных отправляет данные в Slack, Slack создаёт карточку в Trello, а Trello публикует сообщения в Discord и Discourse. ![]()
Но теперь возник цикл, когда Discourse снова публикует сообщения в Discord, ха-ха. Есть ли способ исключить мои посты из этого?
Я добавил связанную функцию сюда: Discord Bot Construction Kit 🤖 - #79 by merefield
Если вы назначите канал «Канал объявлений», любое сообщение, отправленное в нём, будет опубликовано в указанной теме Discourse.
(Обновление также отслеживает объявления из Discourse, которые копируются в Discord в тот же канал)
Это также происходит в моей реализации, но это не бесконечный цикл — система просто подтверждает, что пост добавлен. Чтобы избежать этого, можно разместить тему Discord в Discourse в другом месте и исключить наблюдаемые категории.
О, спасибо, это может реально избавить меня от необходимости использовать другое стороннее приложение! Мне просто нужно будет посмотреть, как оно обрабатывает ссылки на изображения.
На самом деле я не совсем понимаю ваши инструкции: я не могу найти это в меню Discourse в разделе плагинов и не понимаю, как установить ваш плагин.
Пожалуйста, публикуйте конкретные проблемы с инструкциями в теме плагина.
Ваша проблема пока слишком размыта, чтобы я мог вам помочь. Убедитесь, что вы внимательно прочитали первое сообщение, затем опишите конкретную проблему, и я с радостью помогу вам.