Node-REDからLine-Notifyを送信

1. 概要

Node-REDからスマートフォンへメッセージを送る方法として、gmailと同様に、LineのNotify機能を使うことができます。例えば、R-MSM で温度データを取得していて、温度が設定値を上回った時に、LineのNotifyにメッセージを送り、連絡するというような使い方が想定されます。
ここでは、「Node-REDからGmailを送信」で作成したNode-REDのフローをベースにLine-Notifyノードを追加することで、Line-Notifyにメッセージを送る実験をします。

2. 準備事項

Line-Notify機能を使用するには、2つの準備が必要です。
1) Line-Notifyノードの取得:インストールしたままのNode-REDのエディタには、Line-Notifyノードはありませんので追加が必要です。取得が未だの場合は、こちら(line-notifyのノードを追加)を参考にLine-Notifyノードを取得して下さい。
2) Line Notifyのアクセストークンの取得が必要です。アクセストークンはWebサービスからの通知をLINEが受信する際の認証に使用されます。アクセストークンの取得方法は、本文で説明していきます。

3. 仕様

以下のような簡単な仕様のLine Notifyへの送信システムを作ります。
 ・injectノードを押すとLine Notifyへメッセージを送信する。
 ・メッセージの内容は、「現在は、2022年12月10日 09時34分32秒です。」というような日時の情報とする。

4. 送信実験結果

 ① injectノードを押すとLine Notifyにメッセージを送信します。
 ② スマートフォンのLine Notifyに日時メッセージが、トークン名[from Node-RED test]から送られてきました。
   ※ トークン名は、アクセストークン取得時に設定します。

5. Line Notifyのアクセストークンの取得

ここから、Node-REDでLine-Notifyにメッセージを送信する方法を説明します。まず、Line Notifyのアクセストークンの取得方法を説明します。
Line Notifyのページにアクセスします。
② 右上のログインをクリックします。

③ メールアドレスとパスワードを入力します。
④ 「ログイン」を押します。

⑤ ログイン出来たら、右上の自分の名前のところからダウンメニューを開き、「マイページ」を選択します。

⑥ アクセストークンの発行のところで、「トークンを発行する」をクリックします。

⑦ トークン名(送り主表示に使用されます)の入力をします。
⑧ トークンルームのリスト画面から、適当なものを選びます。最後に発行するをクリックします。
    a) 自分だけに送る場合は、「1:1でLINE Notifyから通知を受け取る」を選びます。
    b) グループラインに送る場合は、グループラインを選びます。
⑨ 「発行する」をクリックします。

⑩ アクセストークンが表示されますので、「コピー」ボタンを押し、コピーし、どこかにペーストしておきます。
⑪ 終わったら「閉じる」をクリックします。

 

⑫ 閉じるを押すと、「連携中サービス」として表示されます。

以上で、アクセストークンの取得が完了しました。
次に、Node-REDにline notifyノードを配置し、アクセストークンを設定して、lineが送られるかを確認するフローを作成します。

6. Line Notifyへの送信フローの実装

6-1.メッセージ送信ボタンの設置

送信ボタンとしてinjectノードを配置します。
① injectノードを配置し、ダブルクリックしてプロパティ画面を表示します。
② 名前を入力します。
③ 「完了」を押します。

6-2. 日付のフォーマットの変更

Date/Time Formatterノードを配置します。
① Date/Time Formatterノードを配置し、injectノードと接続します。そして、ダブルクリックしてプロパティ画面を表示します。
② “Input from”を“msg.payload”  にします。
③ “Output Format”を「YYYY年MM月DD日 HH時mm分ss秒」とします。
④ “Output from”を“msg.payload”にします。
⑤ 名前を入力します。
⑥ 「完了」を押します。

6-3. メール送信文を作成

Templateノードの配置します。Templateノードを使用することで、“msg.payload”や”flow“などの変数を簡単に埋め込めます。
① Templateノードを配置し、 Date/Time Formatterノードと接続します。そして、ダブルクリックしてプロパティ画面を表示します。
② 名前を入力します。
③ テンプレートの部分にメールの主文を入れます。ここでは「現在は{{payload}}です。」としています。
{{payload.adc0.val}}や{{flow.thresholdNo6}}のように変数を二重の{}でくくると値を引用できます。
④ 「完了」を押します。

6-4. line-notify ノードを設定

line-notifyノードの配置し、アクセストークンを設定します。
① line-notifyノードを配置し、 Templateノードと接続します。そして、ダブルクリックしてプロパティ画面を表示します。
② アクセストークンを設定するため、「トークン」欄の鉛筆マークをクリックします。

③ 「Name」を入力します。
④ アクセストークンを入力します。
⑤ 最後に、「追加」を押します。

⑥ 「Name」を入力します。
⑦ メッセージ欄を空欄にします。
⑧ 最後に、「完了」を押します。

6-5. デプロイの実行

① debugノードを配置し、 line-Notifyノードと接続します。
② 「デプロイ」を押します。

6-6. 送信実験

 ① 送信ボタンを押します。
 ② 送信先にLine Notifyが送られてきたか確認してください。
 ③ デバッグ画面の日時とLine Notifyに届いたメッセージの日時が同じか確認してください。