使用 discourse-chat-integration 插件设置 Mattermost 通知

This howto describes how to setup the Mattermost provider included in discourse-chat-integration.

Install

If you haven’t already, install the discourse-chat-integration plugin

Notifications

Set up Mattermost

Your Mattermost server needs to be accessible from your Discourse server in order to connect them. It is recommended that you use HTTPS, but HTTP should also work.

  1. In your Mattermost System Console, under Custom Integrations, check that these settings are enabled:

    • Enable Incoming Webhooks
    • Enable integrations to override usernames
    • Enable integrations to override profile picture icons
    • Enable Custom Slash Commands (if you want slash commands)
  2. Login to your team, click your name in the top left, then click Integrations

  3. Choose Incoming Webhooks, Add incoming Webhook

  4. Enter a “Display Name”, “Description”, and choose a random channel from the list (it doesn’t matter which one, Discourse will override this)

  1. Save

  2. Copy the URL provided, you’ll need it later

Setup Discourse

  1. Paste the URL you copied into the chat_integration_mattermost_webhook_url site setting

  2. Enable chat_integration_mattermost_enabled

  3. Setup some “Rules” for your channels, according to the discourse-chat-integration instructions. Channel identifiers look like #town-square or @davidtaylor.

  4. Click Test on one of the channels to check everything’s working. You should receive a message like this:
    26

  5. :unicorn:

Slash Commands

Slash commands allow you to manage your rules from inside Mattermost. To get it working:

  1. If you didn’t already, enable Enable Custom Slash Commands in your Mattermost System Console

  2. Login to your team, click your name in the top left, then click Integrations

  3. Choose Slash Commands, Add slash command

    • Display Name: Discourse
    • Description: Manage Discourse notification rules
    • Command Trigger Word: discourse
    • Request URL: <your-discourse-url>/chat-integration/mattermost/command
    • Request Method: POST
    • Response Username: Discourse
    • Response Icon: (optionally specify an icon URL)
    • Autocomplete: :ballot_box_with_check:
    • Autocomplete Hint: Manage this channel's integration with Discourse
    • Autocomplete Description: [watch|follow|mute|delete|status|help]
  4. Save

  5. Copy the “Token” provided, and paste it into your Discourse site settings under chat_integration_mattermost_incoming_webhook_token

  6. Try sending /discourse help in your mattermost channel - you should get a message with a list of possible commands

  7. :1st_place_medal:

Last edited by @JammyDodger 2024-05-26T07:09:54Z

Check documentPerform check on document:
11 个赞

I recommend you also post this on the mattermost Discourse to get more feedbacks :cowboy_hat_face:

and probably a dedicated topic.

(also I wish we warned communities about hideous looking oneboxes cause they are missing images)

6 个赞

I think we already do in the dashboard if they use the default images for the logos.

1 个赞

Mattermost integration now supports slash commands (their implementation is built to be compatible with Slack’s) :tada:

I have also created a topic about it on the Mattermost forum, it can be found here:

5 个赞

Hello! I am getting a broken image link to the right of the mattermost post. I tried to see the image url and it looks like an actual post instead of an image:

http://destek.hugin.com.tr/t/hugin-destek-topluluguna-hos-geldiniz/183/1

Is it intended to be the post author image I wonder?

Any tips on how to fix it?

Hi @nommaz - sorry about that. It was indeed trying to load an image from the URL of the post, which clearly isn’t going to work :wink:

I’ve fixed it now, so if you update to the latest version of the plugin it should work as intended :slight_smile:

https://github.com/discourse/discourse-chat-integration/commit/438a9d92fe6be632b825238ce703a03dd20d285b

2 个赞

Hi David didnt work unfortunately

Are you sure it is not an issue with mattermost_provider.rb:68 ?

Thanks

Vedat

Oops, I made the change in the slack provider instead of mattermost :facepalm:

Just added another commit to correct the error, so please can you give it another try :slight_smile:

1 个赞

Thanks! All set now :slight_smile:

What’s up if I get a 422 error when trying (test) to hook to Mattermost?

Make sure you copied the webhook URL correctly, and that there are no spaces before/after the URL. Is your mattermost server accessible to the internet? Or just an internal network?

3 个赞

What’s the best way to handle multiple teams / multiple mattermost servers?

我启用了与 Mattermost 的聊天集成 - 我通过“/discourse watch”命令订阅了所有“顶级”类别,但未捕获到“子类别”的帖子。

请看这个帖子:https://openziti.discourse.group/t/this-is-a-test-topic-in-the-sdks-category/271
它已正确转发到 Slack - 但未转发到 Mattermost。Slack 能够订阅“所有类别”。Mattermost 似乎无法做到。

我已经尝试了我能想到的所有语法,但都没有成功。有什么建议吗??

提前感谢……

1 个赞

@david - 抱歉提及您,但我在聊天集成中错过了 discourse 帖子。您还有可能还在关注这个帖子吗?

目前,当您“关注”一个类别时,子类别不会自动包含在内。您需要添加每个单独的子类别,或者使用“所有类别”选项。

1 个赞

嘿,感谢回复!!!!如果我能弄清楚“怎么做”那就太好了。该插件似乎只识别最顶层的类别?

我找到并尝试了“所有类别”选项,但它似乎也不起作用?我真的很想只使用“所有类别”,那将是理想的……是我“做错了”吗?请看下面的截图

您好 @david… 上述问题是,我无法弄清楚如何订阅“子类别”,似乎也没有我可以使用的“全部”选项?我很想弄清楚这个问题。

谢谢!

1 个赞

抱歉回复晚了,@Clint_Dovholuk

使用斜杠命令,我认为你可以这样关注所有类别:

/discourse watch

但配置通知规则最简单的方法是在 Discourse 管理面板中进行。在那里,所有选项都清晰地显示在用户界面中,因此无需尝试弄清楚精确的“斜杠命令”语法。请查看插件文档中有关“配置规则”(configuring rules) 的部分以获取更多信息。

2 个赞

谢谢 @david

我之前发布了斜杠命令的截图。在此处重新发布……您可以看到“子类别”未在上面的一两个帖子中列出……

我之前尝试过管理页面,但当我使用它时,它会立即关闭下拉菜单……但是按下“向下箭头”似乎能解决我需要的问题。

我__真的__想要一个“全部”选项。这是一个我可以编辑/修复的插件吗???现在它看起来像这样 :confused:

要获取所有主题的通知,我建议删除所有特定于类别的规则,然后添加一个“所有类别”规则。

你能分享更多关于你在这里看到的内容的细节吗?截图或视频会很有帮助!

在编辑“规则”时,您应该可以使用类别下拉菜单选择“(无类别)”。

保存后,它应该看起来像这样:

(下拉菜单中的“无类别”显然是对其真正含义的糟糕描述。我会修复它)

我认为子类别被省略了帮助文本以节省空间。但是您仍然可以通过使用它们的“slug”(URL 中子类别的名称)来订阅类别。所以在像 Meta 上的 #howto:admins 这样的情况下,它将是 /discourse watch admins