Batchuwsc

UWSC 作業終了通知をcurlからLINEに送信する

令和に入ってuwscの記事というのも、変な感じがしますが、個人的な趣味で未だに現役です。 uwscで実行した作業の進捗率等が外出中にもわかると良いなと考え、LINEに通知することにしました。 おおまかな流れとしては、バッチでcurlを実行し、LINEに通知する処理を書き、uwscのDOSCMD関数で実行する、という流れです。

LINE notifyのトークン取得

まず、LINEで「UWSC notify」というグループを作成し、LINE notifyというアカウントをメンバーに追加します。 LINE notifyという公式アカウントと友達になっていなければ、追加してください。 以下のサイトにアクセスし、トークンを取得します。 LINE notifyサイトリンク 取得したトークンは無くさないようメモしておきましょう。

バッチに処理を記述

バッチファイルを作成し、以下の処理内容を記述します。 私は、ファイル名を「uwsc_line_notify.bat」としました。 という部分は、先ほど発行したトークンに置き換えてください。

@echo off
set token=
curl -X POST -H "Authorization: Bearer %token%" -F "message=%1" https://notify-api.line.me/api/notify

このバッチファイルの第一引数に渡した内容はそのままメッセージとして送信されます。

UWSCに処理を追記

先ほど作成したバッチファイルを実行し、引数に送信したいメッセージを渡します。 もし、メッセージが下記のように固定であれば、バッチ内にそのまま書いてしまった方が良いかもしれませんが、進捗率によりメッセージを変更できるよう、このような形としています。

DOSCMD("path\to\uwsc_line_notify.bat " + "Work is finished")

追記 日本語を送信する場合には、文字化けが起こってしまうようです。 UTF-8で保存したテキストファイルから文字列を送信する方法が解決案として提示されているサイトもありましたが、一部文字化けを起こしていました。 解決法がわからないうちは、日本語を使用しないのが良さそうです。