Set up Discord notifications with the discourse-chat-integration plugin

Попробуйте обновить страницу. После включения плагина потребуется обновление.

3 лайка

Я вижу это теперь, спасибо!

Ребята, возникает ошибка при настройке этого плагина с Discord. Канал создан, вебхук настроен через плагин.

Теперь я получаю следующую ошибку.

А при отправке теста получаю эту ошибку.

В логах вот что выводится.

Буду благодарен за любую помощь.

Можете ли вы поделиться содержимым вкладки «Информация» для этого? Если вы можете скопировать и вставить текст, это было бы отлично — читать логи на скриншоте сложно.

1 лайк

Сообщение (2 копии отправлены)

Тестовый провайдер не удался {:error_key=>nil, :message=>{:content=>"", :embeds=>[{:title=>"FAYN Rule Book [Alliance/Announcements] ", :color=>12525102, :description=>"[image] \nFAYN — это группа корпораций, работающих вместе как единое целое для развития как отдельных участников, так и группы в рамках данных руководящих принципов и правил. \nИнструменты администрирования\nКак часть FAYN вы обязаны связать ВСЕХ своих персонажей, независимо от их значимости, с вашим основным персонажем в SeAT. Это является частью требований при найме и поддерживает текущее управление нашей корпорацией...", :url=>"https://forum.darksideoftheeclipse.co.uk/t/fayn-rule-book/45/1", :author=>{:name=>"@PJHustle", :url=>"https://forum.darksideoftheeclipse.co.uk/u/PJHustle", :icon_url=>"https://forum.darksideoftheeclipse.co.uk/user_avatar/forum.darksideoftheeclipse.co.uk/pjhustle/45/4_2.png"}}]}, :response_body=>"<html>\r\n<head><title>403 Forbidden</title></head>\r\n<body>\r\n<center><h1>403 Forbidden</h1></center>\r\n<hr><center>cloudflare</center>\r\n</body>\r\n</html>\r\n"}

Трассировка стека

/var/www/discourse/plugins/discourse-chat-integration/app/controllers/chat_controller.rb:43:in `rescue in test'
/var/www/discourse/plugins/discourse-chat-integration/app/controllers/chat_controller.rb:22:in `test'
actionpack-6.0.3.3/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack-6.0.3.3/lib/abstract_controller/base.rb:195:in `process_action'
actionpack-6.0.3.3/lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack-6.0.3.3/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
activesupport-6.0.3.3/lib/active_support/callbacks.rb:112:in `block in run_callbacks'
/var/www/discourse/app/controllers/application_controller.rb:354:in `block in with_resolved_locale'
i18n-1.8.5/lib/i18n.rb:313:in `with_locale'
/var/www/discourse/app/controllers/application_controller.rb:354:in `with_resolved_locale'

Окружение

HTTP HOSTS: forum.darksideoftheeclipse.co.uk

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

1 лайк

Да, возможно. Но я пас. Я не разработчик и не имею ни малейшего представления, что делать или что спрашивать. Я мало что в этом понимаю. Просто публикую это, потому что раньше всё работало, а теперь нет.

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

Поделиться — это полезно. Мы лишь отмечаем, что, судя по данным, проблема, похоже, находится на стороне Discord. Мы не можем это контролировать.

1 лайк

Я нашел проблему.

Вебхук Discord изменился с discordapp.com на discord.com.
Когда я изменил вебхук с discord.com на discordapp.com, всё заработало.

Так что пока всё работает. Я отправил тикет в поддержку Discord с этой проблемой.
Но пока неясно, где именно кроется проблема: в Discord или в приложении?

Редактирование: URL вебхука в Discourse я изменил.

5 лайков

Спасибо за решение. Я чуть не сошёл с ума, пытаясь отладить это.

Привет.

У меня тоже возникла такая же проблема. При нажатии на кнопку test в разделе ПлагиныИнтеграции чата появляется сообщение DiscourseChat::ProviderError, а при попытке использовать URL вебхука Discord возвращается ошибка 403 Forbidden.

Есть какие-нибудь советы, как это исправить?

Вам всё ещё нужно изменить URL вебхука, чтобы использовать домен discordapp.com вместо discord.com.

4 лайка

Привет. Это решило мою проблему. Спасибо.

Думаю, сам плагин тоже должен поддерживать новый формат домена API в следующем обновлении.

2 лайка

Отлично, это тоже помогло мне.


В консоли появляются эти ошибки, и канал плагина не загружается. Это из-за темы? Нужно ли её отключить?

Вам нужно проверить конфигурацию вашего сервера, так как она меняется в зависимости от того, используете ли вы Apache или Nginx. Вы можете поискать это сообщение :love_you_gesture:

Кстати, возможно ли добавить миниатюры и сократить цитируемое сообщение в Discord? Оно слишком длинное и ломает наш чат :neutral_face:

Кстати, спасибо за вашу работу (всего сообщества), как всегда!

В логе была такая ошибка:

/var/www/discourse/plugins/discourse-chat-integration/app/controllers/chat_controller.rb:43:in `rescue in test'
/var/www/discourse/plugins/discourse-chat-integration/app/controllers/chat_controller.rb:22:in `test'
actionpack-6.1.4.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack-6.1.4.1/lib/abstract_controller/base.rb:228:in `process_action'
actionpack-6.1.4.1/lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack-6.1.4.1/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
activesupport-6.1.4.1/lib/active_support/callbacks.rb:117:in `block in run_callbacks'
/var/www/discourse/app/controllers/application_controller.rb:397:in `block in with_resolved_locale'
i18n-1.8.10/lib/i18n.rb:314:in `with_locale'
/var/www/discourse/app/controllers/application_controller.rb:397:in `with_resolved_locale'

Я просто изменил URL вебхука с discord.com на discordapp.com, и всё заработало :+1:

3 лайка

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

Обратите внимание, что, вероятно, существует более «рубистый» способ реализации этого. Возможно, метод on(:reviewable) должен использовать очередь, специфичную для объектов reviewable, а передача флага flagged в качестве булева значения — это своего рода хакинг. Также, возможно, есть другие более универсальные действия, которые можно выполнять с объектом reviewable, но текущее решение подходит для моих целей.

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

В итоге это выглядит так…

1 лайк

Всем привет.
Вебхук с Discord работает корректно… за исключением того, что содержимое сообщения пустое. Тема/ответ на дискурсе не отображаются на сервере Discord.

Если я добавлю ‘chat integration discord message content’, эта часть включается корректно.

Спасибо,

Мне наконец удалось заставить это работать, методом проб и ошибок. Для тех, кто придет после меня…

В инструкциях сказано:

:warning: ПРИМЕЧАНИЕ: Если при использовании вебхука возникает ошибка, убедитесь, что доменное имя — discordapp.com, а не discord.com.

Когда я скопировал свой вебхук из Discord, он был в следующем формате: https://discordapp.com/api/webhooks/xxx/yyy-zzz-aaa

Таким образом, приведенные выше инструкции соответствуют URL, который предоставляет Discord.

Проблема возникает при следовании инструкциям. Настройки плагина отклоняют схему URL, указанную в документации, и принимают схему, которая запрещена. Будто бы в коде где-то не хватает знака «!».

К счастью, URL вебхука работает, когда я использую второй адрес, как показано на скриншоте ниже.

Поэтому несколько предложений, которые могли бы прояснить эту проблему для следующего человека, который, возможно, не будет проводить столько же проб и ошибок, как я:

  1. Обновить валидатор так, чтобы discordapp.com проходил, а discord.com — нет.
  2. Обновить валидатор так, чтобы проходили оба адреса: discordapp.com и discord.com.
  3. Изменить формулировку в инструкциях, чтобы убрать это противоречивое примечание.

Дополнительные предложения:
в разделе настроек «Настройка Discourse»:
Шаг 0: после установки плагина включите его.
Шаг 1: добавьте скриншот.
Шаг 3: добавьте скриншот.

Я немного беспокоюсь, что Discord перестанет поддерживать «неправильную» схему, которую я сейчас использую, поэтому мне бы хотелось, чтобы Discourse исправил это, чтобы мне не приходилось использовать обходной путь до того, как Discord сломает мой альтернативный URL.