【注】LINE Notifyは2025年3月31日でサービスが終了しました。今後はMessaging APIで連携できるよう記事の内容を置き換えています。 ※本記事の変更箇所は UPDATE を参照してください。
LiLz では測定した値がユーザーの設定した閾値を超えたときに、アラートメールを送信できる機能があります。
参照:[LiLz Cloud]閾値アラートメールの通知設定を行う
ここでは LiLz のアラートメールをLINEに通知する方法を解説します。
事前準備
-
LINEアカウントの作成
アラートを受け取りたいLINEアカウントを作成します。 -
Googleアカウントの作成
作成したGmailアカウントをLiLz に招待する or LiLz からのメールがGmailに転送されるように設定します。 -
LINE公式アカウントの作成 UPDATE
Messaging APIを使用するためにLINE公式アカウントを作成する必要があります。LINE公式アカウントを作成するためにはビジネスIDに登録が必要です。(ビジネスIDとは?)
作成した公式アカウントから友だち登録したLINEアカウントへアラートを通知します。
※任意のアカウントで可能。運用上、LiLzクラウドの組織管理者もしくは各管理ユニットの管理者で作成することを推奨。 -
Messaging APIの利用登録とチャネル作成 UPDATE
LINE公式アカウントをMessaging APIと連携するには、LINE Official Account Manager でMessaging APIの利用を有効にします。有効にすると、Messaging APIのチャネルが作成されます。
※LINE公式アカウント及びMessaging APIの登録方法については公式ドキュメントに詳しく解説されていますのでご参照ください。
※LINE公式アカウントの料金プランはこちら。コミュニケーションプラン(無料)は 200通/月 までとなっています。「メッセージを送った回数」×「送った友だちの数」が「通数」としてカウントされます。
目次
- LINE公式アカウントを友だちに追加する UPDATE
- Messaging APIチャネルでチャネルアクセストークンを発行する UPDATE
- Gmailでフィルタ・ラベルを作成する UPDATE ※アラートの仕様変更のためフィルタを追加
- Google Apps Scriptでプロジェクトを作成する UPDATE
- トリガーを設定する
- テスト UPDATE
1. LINE公式アカウントを友だちに追加する UPDATE
LINE公式アカウントが作成されていることを LINE Official Account Manager で確認してください。
アカウント名をクリックして公式アカウントのIDを確認します。
もしくはページ下部よりURLまたはQRコードを作成してください。
LINEアカウントの「友だち追加」より、LINE公式アカウントのIDを検索して、友だちに追加します。
URLやQRコードを作成した場合は直接アクセスして追加してください。
2. Messaging APIチャネルでチャネルアクセストークンを発行する UPDATE
LINE Developers コンソール のプロバイダーから作成したMessaging APIチャネルを選択します。
「Messaging API設定」タブを選択
ページ下部にあるチャネルアクセストークンを発行します。
発行されたチャネルアクセストークンをコピーしてメモ帳などに控えておきます。
3. Gmailでフィルタ・ラベルを作成する UPDATE
Gmailでフィルタを設定していない場合は、LiLz のアラートメールのフィルタを設定し、ラベルを作成してください。
今回は、LiLz のすべてのアラートメールをフィルタリングするために、 「送信元(From):no-reply@lilz.jp & [Notice]を含む」 および 「送信元(From):no-reply@lilz.jp & [Warning]を含む」 メールを指定します。※ アラートの仕様変更により [Warning] を追加
アラートメールには 「管理限界」 と 「規格限界」 の2種類あるため、アラートのレベルによって通知を振り分けたい場合や計器ごとに通知先を変更したい場合などは適宜フィルタの設定を調整してください。
ラベルを指定してください。未作成の場合は任意のラベル名でラベルを作成してください。
その他の項目は任意で指定してください。
先ほど作成したラベルの中で、今度はLINE通知済みかどうかを管理するためのフィルタを作成します。
※GmailをLiLz のLINE通知のみで利用する場合などは、このステップは省略しても構いません。この後のスクリプトの実行で、LINEへ通知したメールのラベルを削除するフローがあります。LINE通知後もアラートメールのラベルにメールを振り分けたままにしたい場合は、このまま管理用のラベルを作成します。
ラベルの中でフィルタを作成すれば、先ほど作成したラベルが検索条件に追加されているので、そのまま「フィルタを作成」をクリックして作成します。
ラベル名「LINE Notice」を作成して設定します。ラベル名は後でスクリプトで指定するラベル名と合っていれば任意の名前で構いません。
※下線のチェック項目は必ず外してください。ここで過去のメールにフィルタを適用してラベルを付けてしまうと、初回のLINE通知でこれまでGmailで受信したアラートメールが一斉に送信されます。
これでGmailの設定は完了しました。
4. Google Apps Scriptでプロジェクトを作成する UPDATE
Google Apps Scriptにアクセスし、新しいプロジェクトを作成します。
プロジェクト名は任意で変更してください。コードには次のスクリプトを貼り付けます。
<スクリプト>
token にMessaging APIチャネルで発行したチャネルアクセストークンを指定してください。
※ラベル名「LINE Notice」から変更した場合は、変更後の管理用のラベル名を指定します。
function sendLineNotification() {
// 特定のラベルの付いたメールを取得
const label = GmailApp.getUserLabelByName("LINE Notice"); // ラベルを指定
const threads = label.getThreads();
if (!label) {
Logger.log("ラベルが見つかりません: LINE Notice");
return;
}
// Messaging APIの設定(作成したLINE公式アカウントの友だち全員に通知する)
const url = "https://api.line.me/v2/bot/message/broadcast"; // 「Broadcast API」を指定
const token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // 取得したMessaging APIのチャネルアクセストークンを指定
// ラベルの一致したスレッドのメッセージを取得
for (let i = 0; i < threads.length; i++) {
let messages = threads[i].getMessages();
// スレッド内の最新のメッセージ(メール)を取得※Gmailは同じ件名の場合はスレッドでまとめられる仕様
let latest_message = messages[messages.length - 1];
let subject = latest_message.getSubject();
let body = latest_message.getPlainBody();
let message = "======================================================\n" + subject + "\n======================================================\n\n" + body;
let payload = {
"messages": [
{
"type": "text",
"text": message
}
]
}
let options = {
"method": "post",
'payload': JSON.stringify(payload),
"headers": {
"Authorization": "Bearer " + token,
"Content-Type": "application/json"
}
};
UrlFetchApp.fetch(url, options);
// ラベルを削除して重複通知を防止
threads[i].removeLabel(label);
}
}プロジェクトを保存します。これでプロジェクトが作成できました。
5. トリガーを設定する
App Scriptから自分のプロジェクトに移動し、作成したプロジェクトのトリガーを設定します。
実行する関数にスクリプトの関数(sendLineNotification)が表示されています。
あとは任意のトリガーを設定して保存してください。
※この例では時間主導型のトリガーで15分おきに実行する設定としています。
以上でアラートメールをLINEに通知するためのすべての設定が完了しました。
6. テスト UPDATE
【注】LINE Notifyの連携で利用していた「LINE Notice」のラベルが残っている場合、多量の通知が送信されるためご注意ください。Messaging APIへの切り替え時は一度すべてのメールの「LINE Notice」ラベルを外してからテストすることを推奨します。
では実際にLINEに通知できるかテストしてみましょう。
LiLz アラートのフィルタで作成したラベルの中で、管理用のラベル「LINE Notice」を1つ付けてみます。
トリガーが発動したら、作成したLINE公式アカウントから友だち登録しているLINEアカウントに通知が届きます。
Gmailを確認すると、LINE通知のスクリプトが実行された後でラベルが削除されています。
LINE公式アカウントを管理ユニット毎に作成することで、LiLzクラウドと同じように管理ユニットに所属するメンバーへアラートを通知することができます。
また、フィルタの設定方法を変更すると、各計器のアラートを分類することが可能です。
ぜひ、色々と試してみてください!
LINEグループに通知したい場合は、公式アカウントをグループへ招待及びGoogle App ScriptでLINEのグループIDを指定する必要があります。
こちらについては別途記載します。