Line Notify から Telegram Bot への通知移行:10分で完了する無料&強力な方法|簡単ステップ解説
Line Notify の個人通知を無料でより強力な Telegram Bot に10分で移行する方法を手順通りに解説。通知の安定性と利便性を向上させたい方必見の実践ガイドです。
本記事は AI による翻訳をもとに作成されています。表現が不自然な箇所がありましたら、ぜひコメントでお知らせください。
記事一覧
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を見つける必要があります:
リクエスト:
1
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
{
"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です:
1
2
3
4
5
6
"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 を使ってグループにメッセージを送信できます。
リクエスト:
1
2
3
curl 'https://api.telegram.org/bot你的_BOT_API_Token/sendMessage' \
--form 'chat_id="グループチャットID"' \
--form 'text="メッセージ内容"'
例:
1
2
3
curl 'https://api.telegram.org/bot7814194578:AAEWpPJvKn06ID7D9FjV65aDKQLkGkz8cc8/sendMessage' \
--form 'chat_id="-4532420331"' \
--form 'text="test"'
レスポンスと結果:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"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 送信コード:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 送信コードへの移行:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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_TokenTelegramChatIdは私が独自に定義したメソッドです。実務上、異なる通知を別々のグループに送信したいため、対象グループとそのGroup Chat Idを管理する構造体を定義しました。
/sendMessage APIパラメータ、詳細やその他のパラメータは公式ドキュメントを参照してください 、以下は私がよく使うパラメータです:
text: メッセージ内容(必須)
chat_id: 送信先のグループチャットID(必須)
parse_mode: メッセージ内容の解析方法、ここでは
Markdownを指定しますdisable_web_page_preview: メッセージ内のリンクのプレビューを無効にするかどうかです。ここで
trueに設定すると、メッセージがよりシンプルに表示されます。
使用方法:
1
2
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基本コードを貼り付け:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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 を登録します。
リクエスト:
1
2
curl --location 'https://api.telegram.org/你的_BOT_API_Token/setWebhook' \
--form 'url="あなたのWebhookのURL"'
Response:
1
2
3
4
5
{
"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を使って変換しました。
本記事は Medium にて初公開されました(こちらからオリジナル版を確認)。ZMediumToMarkdown による自動変換・同期技術を使用しています。

























