📲 Line Notify連携:リアルタイム監視通知ボットの構築
前章では、Googleスプレッドシートに米ドル為替レートを自動取得させることに成功しました。 しかし、為替レートが急落した場合、投資家であるあなたは毎日スプレッドシートを開いて確認しないかもしれません。もしそれが「ボス、今日は米ドルが急落しています、今がチャンスです!」とLINEメッセージを自動送信してくれたらどうでしょうか?
本章では、永久無料のLine Notifyを申請し、GASで関数を書いて、いつでもどこでもアラートをあなたのスマホや仕事用グループにプッシュ通知する方法を解説します!
1. Line Notifyとは?
LINEでメッセージを送信したい場合、2つの方法があります:
- LINE公式アカウント(LINE Official Account / Bot):機能が豊富で、グラフィカルメニューや双方向チャットが可能。欠点は:有料です! 200通を超えると高額な月額料金が発生。
- LINE Notify:「一方向のブロードキャスト」のみ可能。自分自身やグループを紐付け、プログラムから「テキストや画像を送信」するだけ。利点は:完全無料!送信数に制限なし!
システム監視、内部レポート通知、個人用投資ボットには、LINE Notifyが最適です。
2. LINE Notifyトークンの申請
GASプログラムにLINEへメッセージを送信する権限を与えるには、鍵(Token)を申請する必要があります。
- パソコンのブラウザでLINE Notify公式サイトを開き、LINEアカウントでログイン。
- 右上の名前をクリック → **「個人ページ」**を選択。
- ページ最下部までスクロールし、「トークンを発行する(Generate token)」ボタンをクリック。
- トークン名を入力:例
[財務ボット](これは各メッセージの先頭に表示されます)。 - 通知を受け取るチャットルームを選択:
- 「1対1チャットでLINE Notifyから通知を受け取る」を選択(自分だけが閲覧可能)。
- またはチームの「特定のグループ」を選択(グループ全員が閲覧可能)。
- 「発行」をクリック。
- 画面に長い文字列(例:
abc123DEF456ghi789...)が表示されます。 🚨 すぐにこれをコピーし、テキストファイルに保存してください!この画面を閉じると、二度とこのTokenを見ることはできません!
⚠️ グループに送信するように選択した場合、スマホで該当のLINEグループを開き、公式アカウント
LINE Notifyをグループに招待してください!そうしないとメッセージを送信できません!
3. GASでLINE Notify送信関数を作成
前章のGASエディタ(Code.gs)に戻ります。
「伝えたいメッセージ」を渡すと、LINEに送信してくれる共通関数を作成しましょう。
// LINE Notify送信の共通関数
function sendLineNotify(message) {
// 先ほどコピーしたTokenをここに貼り付け
var token = "YOUR_LINE_NOTIFY_TOKEN_HERE";
// Line NotifyのAPIエンドポイント
var url = "https://notify-api.line.me/api/notify";
// Line Notifyのリクエスト形式
var options = {
"method": "post",
"headers": {
"Authorization": "Bearer " + token
},
// 送信内容はpayload内に格納、キーは'message'でなければならない
"payload": {
"message": message
}
};
try {
// 送信!
var response = UrlFetchApp.fetch(url, options);
Logger.log("LINE送信成功:" + response.getContentText());
} catch (error) {
Logger.log("LINE送信失敗:" + error.toString());
}
}
// テスト関数でスマホに通知が届くか確認!
function testLine() {
sendLineNotify("\nボス、おはようございます!Googleスプレッドシートから送信したテストメッセージです!🚀");
}
💡 実践的な細かい工夫:テストメッセージの先頭に\nを追加しています。これはLINE Notifyのデフォルト形式が[トークン名] メッセージとなるためです。改行なしだと見づらいため、\nを入れることで本文を次の行に移動させ、見やすくしています。
testLine関数を選択し「実行」をクリック。スマホが即座に「ピン」と鳴り、ボットからのメッセージが届くはずです!
4. 前章との統合:「底値買いアラート」の作成
前章の「為替レートクローラー」と本章の「LINE送信機能」を統合し、ビジネスロジックを持った自動アラートシステムを作成します。
前章のクローラーコードを修正:
function fetchDailyExchangeRate() {
var apiUrl = "https://api.exchangerate-api.com/v4/latest/USD";
try {
var response = UrlFetchApp.fetch(apiUrl);
var data = JSON.parse(response.getContentText());
var usdToTwd = data.rates.TWD;
if (!usdToTwd) return;
// スプレッドシートに記入
var today = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyy/MM/dd");
appendToSheet(today, usdToTwd);
// 🔔 アラートロジック:米ドル為替レートが31を下回ったら「買いアラート」を送信!
if (usdToTwd < 31.0) {
var msg = "\n🚨 【米ドル底値アラート】🚨\n" +
"現在の米ドル対台湾ドル為替レートが31を突破しました!\n" +
"現在のレート:" + usdToTwd + "\n" +
"ボス、今が買い時です!💵";
sendLineNotify(msg);
} else {
// 通常時の簡易日報送信
sendLineNotify("\n📊 本日の財務日報 \n米ドル対台湾ドル為替レート:" + usdToTwd);
}
} catch (error) {
// システムエラー時もエンジニア(あなた自身)に通知
sendLineNotify("\n❌ クローラーシステム異常発生、至急コードを確認してください!\nエラー内容:" + error.toString());
}
}
5. その他のビジネス応用例
UrlFetchAppとLINE Notifyの組み合わせをマスターすれば、万能ツールを手に入れたも同然です。
財務ボット以外にも、以下のような業務自動化が可能です:
- フォーム監視システム:Google Form予約フォームに新しいエントリーがあったら、トリガー「フォーム送信時」で会社のサポートグループにLINE通知:「🔔 新規予約が入りました、至急対応を!」
- 請求管理ボット:経理がGoogle Sheetに入金を「入金済み」とマークしたら、自動で営業担当者に出荷通知をLINE送信。
- ウェブサイト死活監視:会社の公式サイトに対して1時間ごとにHTTPリクエストを送信し、
200 OK以外(サイトダウン)の場合はLINEでエンジニアを叩き起こす。
これらの強力な機能は、Google Apps Scriptを使えば完全無料、サーバー不要、クラウドデータベースも不要で実現可能です!この自動化思考を身につければ、1人でチーム全体の生産性を凌駕できるでしょう!