定例ミーティングの時間になったら 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 です。