10分で簡単に Line Notify から Telegram Bot 通知へ移行する方法
Line Notify の個人通知サービスを無料でより強力な Telegram Bot に手取り足取り移行する方法

Photo by Lana Codes
LINE Notifyサービス終了のお知らせ
長い間LINE Notifyをご利用いただき、誠にありがとうございます。
LINE Notifyは2016年9月にサービスを開始して以来、開発者向けに提供してきました。より良いサービスを提供し、今後の類似商品サービスに経営資源を集中するため、2025年3月31日をもって本サービスを終了することを決定しました。長年にわたりLINEを通知連携サービスとしてご利用いただいたすべてのユーザーの皆様に心より感謝申し上げます。
もし引き続きLINEでユーザーに通知を送るサービスを利用する場合は、より多機能なMessaging APIの利用をおすすめします。
Line Notify公式サイトより引用、Lineは2024年10月8日にLine Notifyを2025年4月1日で完全終了すると発表しました。引き続きLineで通知を受けるには、有料のMessage APIを利用する必要があります。
Line Notify の利点は非常に簡単に連携でき、個人通知ボットとして使いやすいことです。いくつかの Line Bot やサードパーティサービスも Line Notify を使って通知を行っています(例:ルイーザ、注文通知機能など)。しかし、欠点も多く、例えばメッセージ内容が単一であること、グループ分けができない(すべて Line Notify Bot に送信される)、メッセージの長さに制限があるなどがあります。
Line Notify の終了宣言に伴い、ちょうど他の通信・通知サービスへの移行の機会が訪れました:
-
Slack:無料版のメッセージは30日間のみ保存されます。私の通知は個人的なものなので、Slackは少し大げさです。(Slackでメッセージを送る方法は、以前の記事をご参照ください:Slack & ChatGPT Integration)
-
Discord:私の通知は個人的なもので、ややオーバースペックです。
-
Telegram:無料でほぼ無制限に利用可能。
私にとって Telegram の通信サービスは、元の Line Notify の使用ニーズにより適しています。通知を受け取るチャンネルが必要で、できれば異なるニーズに応じて複数のチャンネルが欲しいです。受け取れる内容やフォーマットは豊富であればあるほど良く、かつ素早く簡単に連携できることが重要です。Telegram はこれらの要件をすべて満たし、さらに Bot との双方向のやり取り機能も実現できます。
成果
まず最終的な完成イメージ(Github Star 通知、Repo Stats 通知の例)を示します:

-
✅ 誰かがリポジトリにスターを付けるとWebhookがトリガーされ、Google Apps Scriptを経由してTelegram BotがTelegramのGithub Statsグループに通知を送信します。
-
✅ Google Apps Scriptが毎日定時にGithubリポジトリのステータスを取得し、Telegram BotでTelegramのGithub Statsグループへ通知を送信します。
-
✅
/updateTelegram Botコマンドを使ってGithubリポジトリのステータスを取得し、Telegram BotがGithub Statsグループに通知を送信します。
元の Line Notify と比較して

-
❌ すべてのメッセージが分類やグループ分けされずに Line Notify に送信される
-
❌ 個別メッセージに対して特別な設定(通知音、サイレントなど)ができない
-
❌ メッセージの入力ができません
目次
-
Telegram Bot の設定
-
Line Notify のメッセージ送信を Telegram Bot に移行する(Google Apps Script)
-
Telegram Bot と対話(コマンド)× Google Apps Script の活用
(1/2) Telegram Bot の設定
Telegram Bot の申請は非常に簡単で、ウェブページを開く必要もなく、公式の BotFather ボット とやり取りするだけで完了します。
Step 1. Telegram Bot を申請する
Telegramサービスをインストールして登録した後、「BotFather ボット」を友達に追加してください。


-
開いて、BotFather ボット に参加してください
-
参加後、すぐにメッセージ「
/newbot」を送信して、あなたのボットを作成します。 -
あなたのボット名を入力してください
-
あなたのボットアカウントを入力してください(重複不可、必ず
botで終わる必要があります。例:私のはzhgchgli_bot) -
あなたの Bot のリンク、クリックして使用を開始してください (例: t.me/harrytest56_bot)
-
あなたの_BOT_API_Tokenを取得し、大切に保管してください ⚠️⚠️⚠️ -
取得した Bot のリンクをクリックして、Bot の使用を開始します:



現在は機能がありません。右上の「Info」をクリックして、名前の編集やプロフィール画像のアップロードができます。
Step 2. Telegram通知グループの作成とボットアカウントの追加
異なる個人通知タイプを別々のグループに送信したいですが、デモのために My Notify Group を1つだけ作成しています。
実際のニーズに応じて異なるグループを作成し、手順に従ってボットを追加・設定できます。



-
新しいグループ
-
あなたのボットアカウントを検索して参加をクリックします
-
グループ名の設定とプロフィール画像の変更
Step 3. グループチャットIDを取得する
Telegram Bot API はグループ一覧やグループチャットIDを直接取得するエンドポイントがありません。/getUpdates を使ってボットのメッセージ一覧を取得し、そこからグループチャットIDを見つける必要があります:
リクエスト:
curl 'https://api.telegram.org/bot你的_BOT_API_Token/getUpdates'
-
Telegram API の形式は
https://api.telegram.org/botあなたの_BOT_API_Token/getUpdatesで、BOT API Token の前にbotという文字列を付ける必要があります。 -
例:
curl 'https://api.telegram.org/bot7814194578:AAEWpPJvKn06ID7D9FjV65aDKQLkGkz8cc8/getUpdates'
Response:
{
"ok": true,
"result": [
{
"update_id": 706454235,
"my_chat_member": {
"chat": {
"id": -4532420331,
"title": "My Nofify",
"type": "group",
"all_members_are_administrators": false
},
"from": {
"id": 986128250,
"is_bot": false,
"first_name": "Harry",
"last_name": "Li",
"username": "zhgchgli"
},
"date": 1728726861,
"old_chat_member": {
"user": {
"id": 7814194578,
"is_bot": true,
"first_name": "Harry Test",
"username": "harrytest56_bot"
},
"status": "left"
},
"new_chat_member": {
"user": {
"id": 7814194578,
"is_bot": true,
"first_name": "Harry Test",
"username": "harrytest56_bot"
},
"status": "member"
}
}
},
{
"update_id": 706454236,
"message": {
"message_id": 1,
"from": {
"id": 986128250,
"is_bot": false,
"first_name": "Harry",
"last_name": "Li",
"username": "zhgchgli"
},
"chat": {
"id": -4532420331,
"title": "My Nofify",
"type": "group",
"all_members_are_administrators": true
},
"date": 1728726861,
"group_chat_created": true
}
},
{
"update_id": 706454237,
"message": {
"message_id": 2,
"from": {
"id": 986128250,
"is_bot": false,
"first_name": "Harry",
"last_name": "Li",
"username": "zhgchgli"
},
"chat": {
"id": -4532420331,
"title": "My Nofify",
"type": "group",
"all_members_are_administrators": true
},
"date": 1728726864,
"new_chat_photo": [
{
"file_id": "AgACAgUAAxkBAAMCZwpHUEaLZSvFFYu8GiO-8qI_jVYAApfAMRu0B1BUJP-4u2wF6scBAAMCAANhAAM2BA",
"file_unique_id": "AQADl8AxG7QHUFQAAQ",
"file_size": 5922,
"width": 160,
"height": 160
},
{
"file_id": "AgACAgUAAxkBAAMCZwpHUEaLZSvFFYu8GiO-8qI_jVYAApfAMRu0B1BUJP-4u2wF6scBAAMCAANiAAM2BA",
"file_unique_id": "AQADl8AxG7QHUFRn",
"file_size": 15097,
"width": 320,
"height": 320
},
{
"file_id": "AgACAgUAAxkBAAMCZwpHUEaLZSvFFYu8GiO-8qI_jVYAApfAMRu0B1BUJP-4u2wF6scBAAMCAANjAAM2BA",
"file_unique_id": "AQADl8AxG7QHUFQB",
"file_size": 37988,
"width": 640,
"height": 640
}
]
}
}
]
}
対応する Group Name + type=group のネストされた JSON データはレスポンス内にあり、その中の id がグループチャットIDです:
"chat": {
"id": -4532420331,
"title": "My Nofify",
"type": "group",
"all_members_are_administrators": false
}
Group Chat Id=-4532420331
⚠️⚠️⚠️️ もしレスポンスが空の
{ "ok": true, "result": [] }となった場合は、あなたのグループにメッセージ(例:Hello)を送信してから再度APIを呼び出してみてください。そうすれば結果が得られるはずです。
Step 4. メッセージを送信する
/sendMessage を使ってグループにメッセージを送信できます。
リクエスト:
curl 'https://api.telegram.org/bot你的_BOT_API_Token/sendMessage' \
--form 'chat_id="グループチャットID"' \
--form 'text="メッセージ内容"'
例:
curl 'https://api.telegram.org/bot7814194578:AAEWpPJvKn06ID7D9FjV65aDKQLkGkz8cc8/sendMessage' \
--form 'chat_id="-4532420331"' \
--form 'text="test"'
レスポンスと結果:
{
"ok": true,
"result": {
"message_id": 5,
"from": {
"id": 7814194578,
"is_bot": true,
"first_name": "Harry Test",
"username": "harrytest56_bot"
},
"chat": {
"id": -4532420331,
"title": "My Nofify",
"type": "group",
"all_members_are_administrators": true
},
"date": 1728727847,
"text": "test"
}
}
- 送信に成功し、上記のレスポンスを取得しました

- Telegram グループに戻ると、先ほど送信したメッセージ内容が表示されます。
(2/2) Line Notify から Telegram Bot へのメッセージ送信移行(Google Apps Script)
私の個人通知ボットサービスは Google Apps Script を使っているため、Google Apps Script(JavaScript に似た言語)での変換例を示します。
元の Line Notify 送信コード:
const lineToken = "XXXX";
function sendLineNotifyMessage(message) {
var url = 'https://notify-api.line.me/api/notify';
var options = {
method: 'post',
headers: {
'Authorization': 'Bearer '+lineToken
},
payload: {
'message': message // メッセージ内容
}
};
const response = UrlFetchApp.fetch(url, options);
Logger.log(response.getContentText()); // レスポンスをログに出力
}
とても簡単で便利に使えることがわかります…
Telegram Bot 送信コードへの移行:
const telegramToken = "あなたの_BOT_API_Token";
const TelegramChatId = {
GA: -123456,
GITHUB: -123457,
MEDIUM: -123458
};
function sendNotifyMessage(message, chatId) {
var url = "https://api.telegram.org/bot"+telegramToken+"/sendMessage";
const payload = {
"chat_id": chatId,
"text": message,
"parse_mode": "Markdown"
}
const options = {
'method': 'post',
'contentType': 'application/json',
'muteHttpExceptions': true,
'payload': JSON.stringify(payload)
};
const response = UrlFetchApp.fetch(url, options);
Logger.log(response.getContentText());
}
前述の Telegram Bot 設定手順で取得した情報。
-
telegramToken=あなたの_BOT_API_Token -
TelegramChatIdは私が独自に定義したメソッドです。実務上、異なる通知を別々のグループに送信したいため、対象グループとそのGroup Chat Idを管理する構造体を定義しました。
/sendMessage APIパラメータ、詳細やその他のパラメータは公式ドキュメントを参照してください 、以下は私がよく使うパラメータです:
-
text: メッセージ内容(必須)
-
chat_id: 送信先のグループチャットID(必須)
-
parse_mode: メッセージ内容の解析方法、ここでは
Markdownを指定します -
disable_web_page_preview: メッセージ内のリンクのプレビューを無効にするかどうかです。ここで
trueに設定すると、メッセージがよりシンプルに表示されます。
使用方法:
sendNotifyMessage("Hello", TelegramChatId.MEDIUM) // Hello メッセージを MEDIUM グループチャットIDに送信
sendNotifyMessage("Hello", -1234) // Hello メッセージを -1234 グループチャットIDに送信
成果
私のGithub Repo Star Notifier ボットを例に挙げると:


-
認証成功!誰かが私のリポジトリにスターを付けると、正しくTelegramグループに通知が送信されます!🎉🎉🎉
-
作成方法は、以前の記事「Google Apps Script を使って3ステップで無料で Github Repo Star Notifier を作る」を参考にしてください。
特殊な音やミュートの設定

Line Notify より優れている点は、異なるグループごとに異なる通知音やミュート設定ができることです。
Telegram Bot と対話(コマンド)× Google Apps Script の利用
Notify の代替機能だけでなく、Telegram Bot はユーザーとの対話機能である Telegram Bot Command を簡単に実現できます。
私の利用シーンに戻ると、私のボットは定期的またはWebhookで通知メッセージを送信します。しかし、時には手動でボットをトリガーして現在の結果をすぐに取得したいこともあります。以前のLine Notifyにはこの機能がなく、Google Apps Scriptでは単にURLを設定して開くだけでトリガーされるという強引な方法しかなく、とても使いにくかったです。
Telegram Bot Command を使えば、直接コマンドメッセージを入力して、ボットにすぐに実行してほしいことを命令できます。
本記事は Goolge Apps Script を例にしています。Google Apps Script の詳細については、以前の記事「Google サービスの RPA 自動化を Google Apps Script で実現する方法」をご参照ください。
Step 1. Google Apps Script を使ってコマンド処理ロジックを実装する
-
Google Apps Script ホームへ移動
-
左上の「新しいプロジェクトを作成」
-
「無題のプロジェクト」をクリックしてプロジェクト名を入力します。例:
Telegram -
基本コードを貼り付け:

const telegramToken = "あなたの_BOT_API_Token";
function doPost(e) {
const content = JSON.parse(e.postData.contents);
if (content.message && content.message.text) {
const command = content.message.text.split(' ')[0];
const chatId = content.message.chat.id;
if (command.startsWith("/update")) {
// /update コマンドを受信したとき
// ここで実行したい処理を行い、返信します...
sendNotifyMessage("こんにちは.....\nコマンド:"+command, chatId);
}
}
return HtmlService.createHtmlOutput("OK!");
}
function sendNotifyMessage(message, chatId) {
var url = "https://api.telegram.org/bot"+telegramToken+"/sendMessage";
const payload = {
"chat_id": chatId,
"text": message,
"disable_web_page_preview": true,
"parse_mode": "Markdown"
}
const options = {
'method': 'post',
'contentType': 'application/json',
'muteHttpExceptions': true,
'payload': JSON.stringify(payload)
};
const response = UrlFetchApp.fetch(url, options);
Logger.log(response.getContentText());
}
-
telegramToken=あなたの_BOT_API_Token -
上記のデモプログラムでは、Postリクエストを受け取り、Commandパラメータが
/updateの場合に你好…と応答し、コマンドを受け取って処理した後の応答シーンをシミュレートしています。
Step 2. Google Apps Script のウェブ公開を完了する



-
右上の「デプロイ」-> 「新しいデプロイを追加」
-
左上の「設定」->「ウェブアプリケーション」
-
誰でもアクセス可能「全員」



-
デプロイ作業を追加し、「アクセス権を付与」を選択してください
-
アカウントウィンドウが表示されたら、Googleのログインアカウントを選択してください
-
警告ウィンドウが表示されたら、「詳細設定」->「
專案名稱に移動(安全ではありません)」を選択してください。 -
「許可」を選択してください

- ウェブアプリケーションのURL:
あなたのWebhookのURL。
コピーしてください。
例:https://script.google.com/macros/s/AKfycbx2oFv-eB4LezdOk3P3aoEZVhx_PI6n_YnTNP7WVVQSaiRU52di5bKNThsvIZxus3Si/exec
Google Apps Script のウェブアプリケーションのデプロイ、更新、使用、デバッグについては、以前の記事「Google Apps Script を使った Google サービスの RPA 自動化」を参照してください。
⚠️⚠️⚠️ ご注意ください。Google Apps Script のコードを変更した場合は、デプロイ → デプロイの管理 → 新しいバージョンを作成をクリックしないと反映されません。詳細は上記の記事をご参照ください。
⚠️⚠️⚠️ご注意ください。Google Apps Script のコードを変更した場合は、デプロイ → デプロイの管理 → 新しいバージョンを作成を選択しないと反映されません。詳細は上記の記事をご参照ください。
⚠️⚠️⚠️ご注意ください。Google Apps Script のコードを変更した場合は、デプロイ → デプロイの管理 → 新しいバージョンを作成 をクリックしないと反映されません。詳細は上記の記事をご参照ください。
Step 3. Webhookを登録する
Telegram API の /setWebhook を使って、あなたの Webhook URL を登録します。
リクエスト:
curl --location 'https://api.telegram.org/你的_BOT_API_Token/setWebhook' \
--form 'url="あなたのWebhookのURL"'
Response:
{
"ok": true,
"result": true,
"description": "Webhookが設定されました"
}
テスト


-
私たちは異なる Chat Id に基づいて応答するため、1:1 のボットとのやり取りでも、ボットが参加しているグループでも応答できます。
-
成功 🎉🎉🎉
次回:
その他の Google Apps Script 自動化記事
注釈

本文は私の Medium での100記事目の記事でもあります(2018年10月に最初の記事を公開し、6年が経ちました)。これからも粘り強く努力を続け、詳細な感想やデータはフォロワー数が1000人(2024年10月現在925人)または総閲覧数が1,000,000を超えた時点(2024年10月現在984,549)で改めて共有します。
*Post MediumからZMediumToMarkdownを使って変換しました。



コメント