シェルから簡単にLINE通知しよう!
LINE-Notify を使えばコマンドラインから簡単にメッセージを送信できることがわかったので共有します。
やること
1. LINE Notify を友達追加する
LINE Notify にアクセスします。 QR コードがあるので、そこから LINE Notify を友達登録しておきましょう。
2. LINE Notify のアクセストークンを取得する
マイページ のページ下部にある、 トークンを発行する ボタンからトークンを発行します。
通知を送りたいグループを選択します。(テストだったら 1:1 で LINE Notify から通知を受け取る にしておくのが無難)
次の画面で出てくる文字列をコピーして、どこかに保存しておきます。
warning
Warning
悪用の恐れがあるのでトークンは誰にも見せないように!!
3. curl コマンドで通知を送信
下のコマンドをターミナルで実行します。
curl -X POST \
-H 'Authorization: Bearer [先ほどのトークン]' \
-F 'message=[送信したいメッセージ]' \
https://notify-api.line.me/api/notify
うまく行くと、シェルに ↓ のように出力されて、
{ "status": 200, "message": "ok" }
↓ こんな感じの通知が来るはずです。
クエリに url を指定すると、画像も送れます。(サーバーにアップロードするとかもできるみたい。)
curl -X POST \
-H 'Authorization: Bearer [トークン]' \
-F 'message=画像のテスト' \
-F 'imageThumbnail=https://blog.pwll.dev/images/sudoku/sudoku.png' \
-F 'imageFullsize=https://blog.pwll.dev/images/sudoku/sudoku.png' \
https://notify-api.line.me/api/notify
4. シェルスクリプトの作成
このままでも十分なのですが、こんなスクリプトを書いてみました。
#!/bin/zsh
local ACCESS_TOKEN='<トークン>'
local __url='https://notify-api.line.me/api/notify'
# パラメータの受け取り
if [[ "`echo $@`" == "" ]]; then
__str=`cat -` # パイプの受け取り
else
__str=$@ # 引数の受け取り
fi
# 処理
echo "${__str}"
# LINE Notifyで通知
curl -s -X POST \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-F "message=${__str}" \
$__url > /dev/null
これで、
./notify.sh ほげほげ〜
cat hoge.txt | ./notify.sh
というようなコマンドで通知を送信できます!
set alias
alias notify='<notify.shのパス>'
などとエイリアスを設定しておくと便利かもしれませんね。
最後に
活用方法がいろいろあって面白そうですね。また何か作ってみようと思います。