はじめに
「GASからLINEに通知を送りたい」——スプレッドシート更新やフォーム受信をLINEで受け取れると便利です。
ただし注意点があります。以前定番だった「LINE Notify」は2025年3月31日でサービス終了しました。 検索で出てくる古い記事の多くはこのLINE Notifyを使っているため、今はそのままでは動きません。
この記事では、現在の正しい方法である「LINE Messaging API」を使って、GASからLINEに通知を送る手順を解説します。
LINE Notifyとの違い
| LINE Notify(終了) | Messaging API(現行) | |
|---|---|---|
| 提供状況 | 2025年3月末で終了 | 現行・公式推奨 |
| 必要なもの | トークンのみ | LINE公式アカウント+トークン |
| 送信先の指定 | 不要(固定) | 必要(ユーザーIDを明示) |
| 無料枠 | 無制限だった | 月200通まで |
Messaging APIは公式アカウントの作成が必要になった分、少し手順が増えますが、一度設定すれば従来と同じようにGASから通知を送れます。
無料枠について: 無料プランは月200通まで。この通数は「送信人数 × メッセージ数」でカウントされます。個人への通知が中心なら十分な範囲です。
全体の流れ
① LINE公式アカウントを作る
② Messaging APIを有効化してトークンを取得
③ 自分のユーザーIDを取得
④ GASにコードを書いて送信
Step 1:LINE公式アカウントを作る
- LINE公式アカウント作成ページ にアクセス
- LINEアカウントでログインして公式アカウントを作成
- アカウント名などの必要情報を入力
個人でも無料で作成できます。
Step 2:Messaging APIを有効化してトークンを取得
- LINE Official Account Manager を開く
- 作成したアカウントを選択 → 右上「設定」
- 左メニュー「Messaging API」→「Messaging APIを利用する」
- プロバイダー名を設定(提供者名。後から変更不可なので注意)
- 設定完了後、LINE Developers Console に移動
- 該当チャネル →「Messaging API設定」タブ
- 一番下の「チャネルアクセストークン(長期)」を発行してコピー
Step 3:自分のユーザーIDを取得する
Messaging APIでは送信先を明示的に指定する必要があります。自分のユーザーIDを調べます。
- LINE Developers Consoleの「Messaging API設定」タブ
- QRコードから、自分のスマホで公式アカウントを友だち追加する
- 同じ画面の「あなたのユーザーID」欄に表示される
Uから始まるIDをコピー
友だち追加していないユーザーには通知を送れません。必ず自分で友だち追加してください。
Step 4:GASでコードを書く
Apps Scriptに以下を貼り付けます。
// ─── 設定 ───────────────────────────────────────
const LINE_CONFIG = {
accessToken: 'ここにチャネルアクセストークン', // ★ Step 2で取得
userId: 'ここにユーザーID(Uから始まる)', // ★ Step 3で取得
};
// ────────────────────────────────────────────────
/**
* LINEにテキストメッセージを送信する
* @param {string} message - 送信するメッセージ
*/
function sendLine(message) {
const url = 'https://api.line.me/v2/bot/message/push';
const payload = {
to: LINE_CONFIG.userId,
messages: [
{ type: 'text', text: message },
],
};
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${LINE_CONFIG.accessToken}`,
},
payload: JSON.stringify(payload),
muteHttpExceptions: true,
};
const response = UrlFetchApp.fetch(url, options);
// エラーチェック
if (response.getResponseCode() !== 200) {
console.error('LINE送信エラー: ' + response.getContentText());
}
}
// 動作確認用
function test() {
sendLine('GASからのテスト通知です📱');
}
test 関数を実行して、LINEに通知が届けば成功です(初回は権限の許可を求められます)。
実用例:フォーム送信をLINEに通知する
Googleフォームに回答があったら、その内容をLINEに送る例です。
/**
* フォーム送信時に呼ばれる関数
* ※ トリガーで「フォーム送信時」に設定する
*/
function onFormSubmit(e) {
let message = '📋 フォームに新しい回答がありました\n\n';
const responses = e.namedValues;
for (const [question, answers] of Object.entries(responses)) {
message += `■ ${question}\n${answers.join(', ')}\n\n`;
}
sendLine(message);
}
トリガーの設定
- Apps Scriptの左メニュー「トリガー(時計アイコン)」
- 「+トリガーを追加」
- 実行する関数:
onFormSubmit - イベントのソース:フォームから
- イベントの種類:フォーム送信時
これでフォーム回答が届くたびに、自動でLINEに通知が飛びます。
つまずきやすいポイント
① 401 Unauthorized エラー
→ チャネルアクセストークンが間違っている、または期限切れ。長期トークンを再発行して確認。
② 400 Bad Request エラー
→ userId が間違っているか、友だち追加していない。Uから始まる正しいIDか確認。
③ 月200通を超えた
→ 無料枠の上限。上限に達すると送信できなくなるため、通数が多い場合は有料プランを検討。
まとめ
- LINE Notifyは終了したので、今はMessaging APIを使う
- 公式アカウントの作成とユーザーIDの指定が必要になった
- コード自体はシンプルで、
sendLine()関数を使い回せる - フォーム通知・定期通知など様々な自動化に応用できる
LINE Notifyの記事で困っていた方は、この方法に切り替えれば通知を復活できます。
業務の通知自動化・システム連携のご相談
「LINE通知の仕組みを業務に組み込みたい」「フォームや基幹システムと連携したい」などのご相談を受け付けています。