プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2021/04/29

[Rocket.Chat] Webhook を使って通知する

update2021/08/13 event_note2021/04/29 14:18

定例ミーティングの時間になったら Rocket.Chat で通知したいなと思っていろいろ調べてみたら、Webhook と bot を使った方法があるみたいで、とりあえず Webhook を使って実現できそうなので試してみました。

Incoming Webhook の設定を行う

管理メニュー > サービス連携 > Incoming で設定を行います。

以下のページを参考にさせてもらいました。

画面下部に curl のコマンドが表示されるので、Linux ではそのコマンドを実行するだけで通知できます。

あとは cron などを使って実行するように設定すれば良いと思います。

Windows から通知する

Windows の場合、表示されている curl のコマンドそのままでは動きませんでしたが、以下のコマンドで送信できることを確認しました。

> curl.exe -X POST -H "Content-Type: application/json" -d "{\"text\":\"Example message\"}" <WebhookのURI>
> (Invoke-WebRequest -Uri <WebhookのURI> -Method POST -Body @{"text"="Example message"}).content

"Service Unavailable" が表示された

私の場合、Incoming WebHook の設定を有効にするのを忘れていました。
設定画面の一番上にあったのを見落としていました。

メンションの権限の設定

bot からの通知で @all @here のメンションを使用した場合、デフォルトだと error-action-not-allowed のエラーが返ってきます。
これは権限がないためなので、管理メニュー > 権限 より mention-all mention-here の権限を bot に与えれば OK です。