discourse-chat-integration プラグインを使用した Mattermost 通知の設定

この howto では、discourse-chat-integration に含まれる Mattermost プロバイダーのセットアップ方法について説明します。

有効化

discourse-chat-integration プラグインは Discourse にバンドルされています。別途インストールは不要です。有効化するには、chat_integration_enabled サイト設定がオンになっていることを確認してください。

通知

Mattermost の設定

Discourse サーバーと接続するには、Mattermost サーバーが Discourse サーバーからアクセス可能である必要があります。HTTPS の使用が推奨されますが、HTTP でも動作するはずです。

  1. Mattermost のシステムコンソールで、カスタム統合の下に以下の設定が有効になっていることを確認してください:

    • 受信 Webhook を有効化
    • 統合によるユーザー名のオーバーライドを有効化
    • 統合によるプロフィール写真アイコンのオーバーライドを有効化
    • カスタムスラッシュコマンドを有効化(スラッシュコマンドを使用する場合)
  2. チームにログインし、左上の名前をクリックした後、\u003ckbd\u003eIntegrations\u003c/kbd\u003e をクリックします。

  3. \u003ckbd\u003eIncoming Webhooks\u003c/kbd\u003e を選択し、\u003ckbd\u003eAdd incoming Webhook\u003c/kbd\u003e をクリックします。

  4. 「表示名」と「説明」を入力し、リストからランダムなチャンネルを選択してください(どのチャンネルでも構いません。Discourse がこれをオーバーライドします)。

\u003cimg src="//assets-meta-cdck-prod-meta.s3.dualstack.us-west-1.amazonaws.com/original/3X/d/a/da17356f254cb84e84738ffe8f4a0652de2f2677.png" height="200"\u003e

  1. \u003ckbd\u003eSave\u003c/kbd\u003e をクリックします。

  2. 表示された URL をコピーしてください。後で必要になります。

Discourse の設定

  1. コピーした URL を chat_integration_mattermost_webhook_url サイト設定に貼り付けます。

  2. chat_integration_mattermost_enabled を有効化します。

  3. チャンネルの「ルール」を設定します。詳細は discourse-chat-integration の手順に従ってください。チャンネル識別子は #town-square@davidtaylor のような形式です。

  4. チャンネルのいずれかで\u003ckbd\u003eTest\u003c/kbd\u003eをクリックして、すべてが正常に動作しているか確認してください。以下のようなメッセージを受信するはずです:

  5. :unicorn:

スラッシュコマンド

スラッシュコマンドを使用すると、Mattermost 内からルールを管理できます。有効にするには:

  1. まだ有効にしていない場合は、Mattermost のシステムコンソールカスタムスラッシュコマンドを有効化してください。

  2. チームにログインし、左上の名前をクリックした後、\u003ckbd\u003eIntegrations\u003c/kbd\u003e をクリックします。

  3. \u003ckbd\u003eSlash Commands\u003c/kbd\u003e を選択し、\u003ckbd\u003eAdd slash command\u003c/kbd\u003e をクリックします。

    • 表示名: Discourse
    • 説明: Discourse の通知ルールの管理
    • コマンドトリガーワード: discourse
    • リクエスト URL: \u003cyour-discourse-url\u003e/chat-integration/mattermost/command
    • リクエストメソッド: POST
    • レスポンスユーザー名: Discourse
    • レスポンスアイコン: (任意でアイコン URL を指定可能)
    • 自動補完: :ballot_box_with_check:
    • 自動補完ヒント: Manage this channel's integration with Discourse
    • 自動補完説明: [watch|follow|mute|delete|status|help]
  4. \u003ckbd\u003eSave\u003c/kbd\u003e をクリックします。

  5. 表示された「トークン」をコピーし、Discourse のサイト設定の chat_integration_mattermost_incoming_webhook_token に貼り付けます。

  6. Mattermost チャンネルで /discourse help を送信してみてください。利用可能なコマンドの一覧が表示されるはずです。

  7. :1st_place_medal:

「いいね!」 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:

「いいね!」 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 - メンション失礼します。チャット連携でディスコースの投稿が見られないのですが。このスレッドをまだご覧になっていますか?

現在、カテゴリを「ウォッチ」しても、サブカテゴリは自動的に含まれません。個々のサブカテゴリをすべて追加するか、「すべてのカテゴリ」オプションを使用する必要があります。

「いいね!」 1

やあ、返信ありがとう!!!「やり方」がわかったら最高なんだけど。プラグインが認識しているように見えるのは、一番上のカテゴリだけ?

「すべてのカテゴリ」オプションを見つけて試したけど、それも機能していないみたい?「すべて」を使えたら本当に嬉しいんだけど、それが理想だよ…私が「間違っている」の?下のスクリーンショットを見て。

@davidさん、上記の件ですが、サブカテゴリを購読する方法がわからないのですが、また、使用できる「すべて」というオプションも見当たりません。これを解決できれば嬉しいです。

よろしくお願いします!

「いいね!」 1

ご返信が遅くなり申し訳ありません、@Clint_Dovholuk

スラッシュコマンドを使用すると、次のようにすべてのカテゴリを監視できると思います。

/discourse watch

ただし、通知ルールを設定する最も簡単な方法は、Discourse管理パネルを使用することです。そこでは、すべてのオプションがUIに明確に表示されているため、正確な「スラッシュコマンド」構文を理解しようとする必要はありません。詳細については、プラグインのドキュメントの「ルール設定」セクションを確認してください。

「いいね!」 2

@david ありがとうございます。

以前にスラッシュコマンドのスクリーンショットを投稿しました。こちらに再投稿します…数投稿前に「サブカテゴリ」が表示されていないことがわかります…

以前にも管理ページを試しましたが、使用するとすぐにドロップダウンが閉じました…しかし、「下矢印」を押すと必要なものが解放されたようです。

「すべて」のオプションが__本当に__欲しいです。これは私が編集/修正できるプラグインですか???今はこんな感じです:confused:

[quote=“Clint_Dovholuk, post:19, topic:66811”]
現状はこうなっています。
[/quote]すべてのトピックの通知を受け取るには、カテゴリ固有のルールをすべて削除し、単一の「すべてのカテゴリ」ルールを追加することをお勧めします。

[quote=“Clint_Dovholuk, post:19, topic:66811”]
以前、管理ページを試しましたが、使用するとすぐにドロップダウンが閉じました…
[/quote]ここで何が見えるか、もう少し詳しく教えていただけますか?スクリーンショットや動画があると素晴らしいです!

「ルール」を編集する際には、カテゴリのドロップダウンを使用して「(カテゴリなし)」を選択できるはずです。

保存すると、このようになります。

(ドロップダウンの「カテゴリなし」は、それが実際に何を意味するかの説明としては明らかに不十分です。修正します)

[quote=“Clint_Dovholuk, post:19, topic:66811”]
以前、スラッシュコマンドのスクリーンキャップを投稿しました。ここに再投稿します…数投稿前で「サブカテゴリ」がリストされていないことがわかります…
[/quote]サブカテゴリはスペースの都合上、ヘルプテキストから省略されていると思います。しかし、カテゴリの「スラッグ」(URLのサブカテゴリ名)を使用してカテゴリを購読することは可能です。たとえば、ここMetaの#howto:adminsの場合は /discourse watch admins となります。