Configura le notifiche Mattermost usando il 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 Mi Piace

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 Mi Piace

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

1 Mi Piace

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 Mi Piace

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 Mi Piace

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 Mi Piace

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 Mi Piace

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

Ho l’integrazione della chat con Mattermost abilitata - mi sono iscritto a tutte le categorie “di primo livello” visualizzate tramite il comando “/discourse watch”, ma i post nelle “sottocategorie” non vengono rilevati.

Prendi questo post: https://openziti.discourse.group/t/this-is-a-test-topic-in-the-sdks-category/271
viene inoltrato correttamente a Slack, ma NON viene inoltrato a Mattermost. Slack è in grado di iscriversi a “tutte le categorie”. Mattermost non sembra esserne in grado.

Ho provato tutta la sintassi a cui riesco a pensare ma non ho avuto fortuna. Qualche suggerimento??

Grazie in anticipo…

1 Mi Piace

@david - scusa per la menzione ma mi mancano i post di discourse nella mia integrazione di chat. c’è qualche possibilità che tu stia ancora seguendo questo thread?

Al momento, le sottocategorie non sono incluse automaticamente quando si seleziona “Segui” per una categoria. Sarà necessario aggiungere ogni singola sottocategoria oppure utilizzare l’opzione “tutte le categorie”.

1 Mi Piace

Ehi, grazie per la risposta!!! Sarebbe fantastico se potessi capire “come”. Le uniche categorie che il plugin sembra riconoscere sono le categorie più in alto?

Ho trovato/provato l’opzione “tutte le categorie” ma anche quella non sembra funzionare? Cavolo, mi piacerebbe davvero usare “tutte”, sarebbe IDEALE… Sto “sbagliando”? Vedi lo screenshot qui sotto

Ciao @david… il problema con quanto sopra è che non riesco a capire come sottoscrivere una “sottocategoria” né sembra esserci un’“all” che posso usare? Mi piacerebbe risolvere questo problema.

Grazie!

1 Mi Piace

Mi scuso per la risposta in ritardo @Clint_Dovholuk!

Usando i comandi slash, penso che tu possa guardare tutte le categorie in questo modo:

/discourse watch

Ma il modo più semplice per configurare le regole di notifica è dal pannello di amministrazione di Discourse. Lì, tutte le opzioni sono chiaramente visualizzate nell’interfaccia utente, quindi non c’è bisogno di cercare di capire la sintassi esatta del ‘comando slash’. Dai un’occhiata alla sezione ‘configurazione delle regole’ della documentazione del plugin per maggiori informazioni.

2 Mi Piace

Grazie @david .

Ho postato uno screenshot del comando slash in precedenza. Lo ripubblico qui… puoi vedere che le ‘sottocategorie’ non sono elencate uno o due post sopra…

Avevo provato la pagina di amministrazione prima, ma il menu a tendina si chiudeva immediatamente quando la usavo… Tuttavia, premendo la ‘freccia giù’ sembrava sbloccare quello che mi serviva.

Mi piacerebbe DAVVERO un’opzione ‘tutto’. È un plugin che posso in qualche modo modificare/correggere??? Al momento sembra così :confused:

Per ricevere notifiche su tutti gli argomenti, suggerirei di eliminare tutte quelle regole specifiche per categoria e quindi aggiungere un’unica regola “tutte le categorie”.

Puoi condividere maggiori dettagli su ciò che vedi qui? Sarebbero ottimi screenshot o un video!

Quando modifichi una “regola”, dovresti essere in grado di utilizzare il menu a tendina della categoria per scegliere “(nessuna categoria)”.

Una volta salvato, dovrebbe apparire così:

(“nessuna categoria” nel menu a tendina è chiaramente una descrizione errata di ciò che significa realmente. Lo sistemerò)

Penso che le sottocategorie siano omesse dal testo della guida per questioni di spazio. Ma puoi comunque iscriverti alle categorie usando il loro ‘slug’ (il nome della sottocategoria dall’URL). Quindi, nel caso di #howto:admins qui su Meta, sarebbe /discourse watch admins.