泥沼SEの備忘録

やってみたいこと、やってみたことを記録しています

Linux ライフハック

BotFatherでTelegram Botを作成し、Ubuntuから通知を送る方法

投稿日:2026年7月12日 更新日:

はじめに

サーバーで動かしているプログラムから、スマートフォンへ通知を送りたいことはありませんか?
メールでも通知はできますが、メール通知だと気付きにくいし、LINE Notifyも終了してしまいました。そこで今回は、無料で使えてスマホにもすぐ届くTelegram Botを使って通知環境を作ってみます。
以下の理由から、私は最近Telegramをよく使っています。

  • スマホにすぐ届く
  • 設定が簡単
  • 無料で使える

今回作成している「ABEMA新着動画通知」でも、動画を検知した際の通知先としてTelegramを採用しました。「ABEMAの通知を作ることが目的ではなく、『自分が欲しい情報だけを届ける通知基盤』を作ることが今回の目的です。今回はBotの作成からcurlで通知を送るところまでをまとめます。

今回作成するもの

最終的にはこのような構成になります。

Ubuntuサーバー
      │
      │ Bot API
      ▼
Telegram
      │
      ▼
スマートフォン(Telegramアプリ)

プログラムからBot APIを呼び出すだけなので、Python以外でも利用できます。

例えば

  • Bash
  • Python
  • PHP
  • Node.js

などからも同じように通知できます。

動作環境

今回使用した環境はこちらです。

項目内容
OSUbuntu Server
通知先Telegram
APITelegram Bot API
確認コマンドcurl・jq

作成の手順

1.BotFatherでBotを作成する

まずはTelegramでBotを作成します。Telegramで@BotFatherを検索して開きます。BotFatherはTelegram公式のBotです。Botの作成や管理はすべてここから行います。

BotFatherを開いたら、次に/newbotを送信します。

すると、まずBotの表示名を聞かれます。

今回はABEMA New Video Watchとしました。

続いてユーザー名を聞かれます。ma_abema_video_watch_botのように入力します。

ユーザー名は以下の要件を満たす必要があります。

  • 世界で一意
  • botで終わる

BotFatherには便利なコマンドがたくさんあります
BotFatherには、今回使用する /newbot 以外にも、

  • Bot名の変更
  • 説明文の設定
  • プロフィール画像の変更
  • コマンド一覧の設定

など、さまざまなコマンドが用意されています。すべて紹介すると長くなってしまうため、その他のコマンドについてはTelegram公式ドキュメントをご確認ください。

BotFatherで利用できるコマンドを見る(Telegram公式)

Botが作成されると、このような画面になります。

ここで、Use this token to access the HTTP APIという文字と一緒にBotトークンが表示されます。

例えば

1234567890:XXXXXXXXXXXXXXXXXXXXXXXXXXXX

のような文字列です。

Botトークンは絶対に公開しないしてはいけません。BotトークンはBotを操作するためのパスワードです。

これを知っている人は、あなたのBotから自由にメッセージを送れるようになります。

そのため、

  • ブログ
  • GitHub
  • SNS
  • スクリーンショット
  • 実行ログ

などには掲載しないようにしましょう。

今回掲載しているスクリーンショットでは、Botトークンをマスクしています。

もし誤って公開してしまった場合は、BotFatherからトークンを再発行(Revoke)することをおすすめします。

2.Botへ話しかける

Botを作っただけでは、まだメッセージを送ることはできません。

Telegramで先ほど作成したBotを検索します。

ma_abema_video_watch_bot

Botを開いたらSTARTを押します。

今回は動作確認として「てすと」と送ってみました。

この作業をしないと、後ほど紹介するgetUpdatesでChat IDを取得できません。

3.Chat IDを取得する

Botへメッセージを送ったら、Ubuntuから次のコマンドを実行します。

curl -s \
"https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/getUpdates" \
| jq

実行すると、このようなJSONが返ってきます。

"chat":{
"id":123456789
}

このidがChat IDになります。

4.通知を送る

Chat IDが取得できたら、いよいよ通知を送ってみましょう。

curl -s \
"https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
--data-urlencode "chat_id=${TELEGRAM_CHAT_ID}" \
--data-urlencode "text=テスト通知です"

正常に送信されると、スマートフォンには以下のように表示されます。

今回は「テスト通知です。」だけですが、私が現在作成しているABEMA新着動画通知では、

ABEMA新着動画
作品:
タイトル:
動画ID:
公開日時:
URL:

という形で通知しています。
通知内容を自由に組み立てられるのがTelegram Botの魅力ですね。

よくあるエラー

Unauthorized
 Botトークンが間違っています。

Not Found
 URLの書き方が間違っています。

resultが空
 Botへまだメッセージを送っていません。

まとめ

今回は以下を行いました。

  • BotFatherでBotを作成
  • Chat ID取得
  • curlで通知送信

ここまで準備しておけば、Pythonからでも、Bashからでも、簡単にTelegramへ通知を送れるようになります。
次回は、このBotをPythonから利用し、実際にABEMA新着動画通知を送るプログラムを作成していきます。

参考

こちらの鍵シリーズは「ライフハック」タグに追加していく予定です。
ライフハックカテゴリはこちら

-Linux, ライフハック

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

iPad × Ubuntuで快適リモートデスクトップ!XRDPでつなぐ手順と注意点

はじめに Linuxのデスクトップ環境を使いたい。。。昨年から急にそう思うようになりました。Linuxのデスクトップ環境、デスクトップLinuxを使いたくなることってありますよね。その昔、学生の頃にD …

自宅サーバのすすめ。自宅ラック立ち上げてみた

はじめに 20014年ごろから自宅サーバを構築していました。 このご時世にオンプレミス(物理環境)かよ。と思われるかもしれませんが、 身近なところにあると、すぐにサーバが立てれて便利なのです。 以下に …