はじめに
社内でRocket.Chatを使用しているが、ubuntuサーバーのcron処理の結果をチャットボットとして通知させたい。
Webhookの仕組みでRocket.Chatからcurlコマンドが発行されるが、cronで実行したシェル内で作成した変数をcurlコマンドでチャットに送信する方法につまづいたので、解決方法を残す
ゴール
curlコマンドで変数を受け取り、状況により違う結果を出せるようにする
curlの形
まずはRocket.ChatにWebhookで発行した基本のcurlコマンドを確認する
curl -X POST -H 'Content-Type: application/json' --data '{"text":"Example message","attachments":[{"title":"Rocket.Chat","title_link":"https://rocket.chat","text":"Rocket.Chat, the best open source chat","image_url":"https://rocket.chat/images/mockup.png","color":"#764FA5"}]}' https://〜〜
テキストのみ飛ばす
プレーンテキストのみ飛ばしたい場合は以下のように記述する
curl -X POST -H 'Content-Type: application/json' --data '{"text":"hogehoge"}' https://〜〜
変数を使う
変数を使う場合は以下のよう
結論は
['"+"']
で囲む
curl -X POST -H 'Content-Type: application/json' --data '{"text":"'"$fuga"'"}' https://〜〜
テキスト+変数
固定文と変数を使いたい場合
curl -X POST -H 'Content-Type: application/json' --data '{"text":"hogehoge'"$fuga"'"}' https://〜〜
こんな感じ
終わりに
見た目としては違和感が強いがこれで使えるようになる
いつか使う時があれば参考にしてください
最初はこの方法はcurlで変数を使用するときだけだと思っていたが、
実際はshellscriptを書くときなどに変数を使いまわしたいときに使う方法だったよう