Configure as notificações do Mattermost usando o plugin discourse-chat-integration

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 curtidas

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 curtidas

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

1 curtida

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 curtidas

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 curtidas

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 curtida

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 curtidas

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

Tenho integração de chat com o Mattermost ativada - assinei todas as categorias de “nível superior” exibidas pelo comando “/discourse watch”, mas as postagens em “subcategorias” não são capturadas.

Pegue esta postagem: https://openziti.discourse.group/t/this-is-a-test-topic-in-the-sdks-category/271
ela é retransmitida para o Slack corretamente - mas NÃO é retransmitida para o Mattermost. O Slack é capaz de assinar “todas as categorias”. O Mattermost não parece ser capaz.

Tentei toda a sintaxe que consigo pensar, mas não tive sorte. Alguma dica??

Obrigado antecipadamente…

1 curtida

@david - desculpe pela menção, mas estou perdendo posts do discourse na minha integração de chat. há alguma chance de você ainda estar acompanhando este tópico?

No momento, as subcategorias não são incluídas automaticamente quando você “assiste” a uma categoria. Você precisará adicionar cada subcategoria individualmente ou usar a opção “todas as categorias”.

1 curtida

Ei, obrigado por responder!!! Seria ótimo se eu pudesse descobrir ‘como’. As únicas categorias que o plugin parece reconhecer são as categorias mais altas?

Encontrei/tentei a opção “todas as categorias”, mas isso também não parece funcionar? Cara, eu realmente gostaria de usar “todas”, seria o IDEAL… Estou “fazendo errado”? Veja a captura de tela abaixo

Olá @david… o problema com o acima é que não consigo descobrir como me inscrever em uma “subcategoria” nem parece haver um “todos” que eu possa usar? Eu adoraria resolver isso.

Obrigado!

1 curtida

Desculpe pela resposta atrasada @Clint_Dovholuk!

Usando comandos de barra, acho que você pode assistir a todas as categorias assim:

/discourse watch

Mas a maneira mais fácil de configurar regras de notificação é no painel de administração do Discourse. Lá, todas as opções são claramente exibidas na interface, então não há necessidade de tentar descobrir a sintaxe exata do ‘comando de barra’. Confira a seção ‘configurando regras’ da documentação do plugin para mais informações.

2 curtidas

Obrigado @david .

Postei uma captura de tela do comando de barra antes. Repostando aqui… você pode ver que as ‘subcategorias’ não estão listadas um ou dois posts acima…

Eu tinha tentado a página de administração antes, mas ela fechava imediatamente o menu suspenso quando eu a usava… No entanto, pressionar a ‘seta para baixo’ pareceu resolver o que eu precisava.

Eu gostaria MUITO de uma opção ‘tudo’. Isso é um plugin que eu posso editar/corrigir de alguma forma??? No momento, parece assim :confused:

Para receber notificações de todos os tópicos, sugiro excluir todas essas regras específicas de categoria e, em seguida, adicionar uma única regra de ‘todas as categorias’.

Você pode compartilhar mais detalhes sobre o que está vendo aqui? Algumas capturas de tela ou um vídeo seriam ótimos!

Ao editar uma ‘regra’, você deve conseguir usar o menu suspenso de categoria para escolher ‘(nenhuma categoria)’.

Depois de salvo, deve ficar assim:

(‘nenhuma categoria’ no menu suspenso é claramente uma má descrição do que realmente significa. Vou corrigir isso)

Acho que as subcategorias são omitidas do texto de ajuda por questões de espaço. Mas você ainda pode se inscrever em categorias usando seu ‘slug’ (o nome da subcategoria da URL). Então, no caso de #howto:admins aqui no Meta, seria /discourse watch admins.