Batasan Blog

人類みな五十歩百歩

RPA通知 LINE編

最近はSikulixというRPAツール実行機となっているクラウドパソコンなのだが、おうちパソコンよりも快適にサクサク動いてくれている(個人的な感想)。やはり物理的にはデータセンターにあって、対象となるアクセス先サーバーとネットワーク的な距離が(たぶん)近いのと、個人向けプロバイダーの混雑や障害の影響を受けないのが何よりも良い。私は全くやらないのだが、株や暗号資産をやっている人たちの間でクラウド利用が流行っているのは、このあたりでよりシビアな勝負をしているからということもあるのだろう(想像)。
RPA実行中や終了のお知らせをGmailを使ってやっていたのだが、今どきメールでもないだろう、と言うことで日本を中心に一部アジア圏でポピュラーなLINEでお知らせするようにしてみた。
普段なにげなく使っているLINEだが、いろいろなAPIが用意されていてアプリ開発者に公開されている。今回はメッセージを送りたいだけなのでなるべく簡単な方法で行いたいのでLINE Notifyというやり方でやってみる。LINE Notifyのページから今流行りのトークを作成する。トークンというのは新しい言葉な感じがするが、理解としては単に長いパスワードと思って大きくは間違っていない(と思う)。これをクラウドパソコン上のファイルにコピペして保存しておく。後はLINE Notifyの専用のページへ自分のメッセージと共にアクセスするだけ。なんとも簡単にできるものだ。ブラウザのURL入力から送ることもできるのだが、長くなるのでスクリプトにしておくと良いと思う。ここではsendline.shというファイルに以下のような内容を記述して、

#!/bin/bash -f
curl -X POST -H 'Authorization: Bearer '`cat linetoken` -F 'message="'$1'"' https://notify-api.line.me/api/notify
#!/bin/bash -f
curl -X POST -H 'Authorization: Bearer '`cat linetoken` -F 'message="'$1'"' https://notify-api.line.me/api/notify

実行権を付けておく。

$ chmod +x sendline.sh
$ chmod +x sendline.sh

ちなみに上記の例ではトークンはlinetokenというファイルに保存している。また`cat linetoken`というのはlinetokenのファイルの内容をコマンドライン上に展開してね、という記号である。$1 というのは実行する時に後ろに書いた値をセットするという意味である(引数という)。実行するときはこんなかんじ。

$ ./sendline.sh クラウドパソコンからラインメッセージ
$ ./sendline.sh クラウドパソコンからラインメッセージ

LINEの宛先が書いていないようだが、それは発行されたトークンの中に情報として入っている。上に単なる長いパスワードと書いてしまったが、トークンにはもう少し違う役割もあるようだ。またRPAツールであるSikulixはpythonを使っているので、そこから呼び出すときはこんなかんじ。

# SikulixのPythonからLINEへメッセージを送る
m = "Sikulixからのメッセージ"
subprocess.call(['linesend.sh',  m])
# SikulixのPythonからLINEへメッセージを送る
m = "Sikulixからのメッセージ"
subprocess.call(['linesend.sh',  m])

結果として無事にLINE Notifyさんからメッセージが届きました(笑)。これはいろいろ使えそう。