お疲れ様です!Mattermost をもっと便利ツールにしたくて Hubot + hubot-mattermost を使おうと思ったのですが現時点では hubot-mattermost はスラッシュコマンドと Attachments に対応してないんですよね。待ちきれないので修正してみました。本家に戻すことは今のところ考えてません。使う場合は本家が対応したら修正が入るのを考慮してくださいませ。
修正内容
今回初めて Hubot と coffeescript をさわったので正直お作法とかよくわかってません。
よろしくない修正方法があったらごめんなさいです。
外向きのウェブフックを使うときは今までと同じです。
スラッシュコマンドの対応
スラッシュコマンドのときは、response_url に応答用の内向きウェブフックURLが指定されているので基本的にはこのURLを使うようになっています。もし別の内向きのウェブフックを使うのであれば環境変数へ指定し、send 前に robot.adapter.url へ robot.adapter.incomeUrl を設定します。
robot.adapter.url = robot.adapter.incomeUrl
robot.send envelope, body
Attachments の対応
send するときのメッセージを json 形式にして attachments を指定します。 text が必要なら指定できます。
attachments については Message Attachments — Mattermost 5.2 documentation を参照してください。
例)
data =
text: "text message."
attachments: [
{
fallback: "title"
color: "#3AA3E3",
title: "title",
title_link: "http://test.co.jp/",
text: "message.",
thumb_url: "thumb_url",
image_url: "image_url",
ts: new Date / 1000 | 0,
fields: [
{
title: "Update"
value: "fields value"
short: true
}
]
}
]
ユーザー名とアイコンをボット側から指定
変更する場合は、send するときの envelope に changeUsername 、changeIcon を指定します。
envelope.changeUsername = "display name"
envelope.changeIcon = "display icon url"
インストール
下記コマンドで対応版をインストールします。
npm install --save miyabis/hubot-mattermost#miyabis/feature/slashcommands-and-attachments
長ったらしい。。。