Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Get Notifications on Telegram Every Time Your Favorite X Account Tweets

2025年09月29日に「Dev.to」が公開したITニュース「Get Notifications on Telegram Every Time Your Favorite X Account Tweets」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

Xの特定アカウントの新規投稿をTelegramに自動通知するシステムを構築した。GitHub Actionsで定期実行し、リツイートや返信を除外しオリジナル投稿のみを通知。APIトークンはGitHub Secretsで安全に管理し、重複通知も防ぐ。初心者でも再現可能だ。

ITニュース解説

この解説は、特定のX(旧Twitter)アカウントの新規オリジナル投稿があった際に、それを自動的に検知し、Telegramというメッセージアプリに通知を送信するシステムについての記事の内容を説明するものである。このシステムは、手動でXを確認する手間を省き、重要な情報だけを受け取るための自動化ツールとして機能する。

この自動化システムの最大の目的は、日々の情報収集の手間を大幅に削減することにある。私たちがXを何度も確認する代わりに、システムが自動で特定の情報を監視し、新しい投稿があった場合にのみ通知してくれる。特に、X上にはリプライ、リツイート、引用といった多種多様な投稿が溢れており、その中から本当に知りたい「オリジナル投稿」だけを見つけ出すのは一苦労である。このシステムはそういったノイズを効果的にフィルタリングし、本当に価値のある情報だけを届けることを可能にする。一度設定してしまえば、あとはシステムが自動的に動き続けるため、日々のメンテナンスも不要である。また、システムを動かす上で必要となるAPIキーやトークンといった機密情報は、GitHub Secretsという安全な場所に保管され、コード内に直接記述されることがないため、セキュリティ面も考慮されている。

具体的にこのシステムが行うことは、特定のXアカウントを定期的に監視することである。記事の例では「CosineAI」というアカウントを監視しているが、これは設定によってどのXアカウントでも可能である。監視はGitHub Actionsというサービスを通じて、6時間ごとに自動実行されるようにスケジュールされている。新しいオリジナル投稿が見つかった場合、Telegram Bot APIという仕組みを使って、設定されたTelegramのチャットにメッセージが送られる。この際、リプライ、リツイート、引用といった投稿は通知対象から除外され、純粋なオリジナル投稿のみが選ばれる。さらに、すでに通知済みの投稿を再度送ってしまうことを防ぐため、「最後に通知した投稿のID」を記録する機能も持っている。この記録はstate/last_seen.jsonというファイルに保存され、GitHub Actionsが更新と管理を行う。

このシステムはいくつかの主要な技術要素を組み合わせて構築されている。まず、Xから投稿データを取得するために「X/Twitter API v2」を利用する。次に、取得した情報をもとにTelegramに通知を送信するために「Telegram Bot API」を使う。これらのAPIと連携し、投稿の取得、フィルタリング、メッセージ送信といった一連の処理を実行するのが「Pythonスクリプト(monitor.py)」である。そして、このPythonスクリプトを定期的に自動実行し、さらに状態管理ファイル(last_seen.json)の更新なども含めてワークフロー全体を管理するのが「GitHub Actions」である。APIへのアクセスに必要なトークンやキーは「GitHub Secrets」に安全に保管され、コードの公開時にも情報漏洩のリスクを最小限に抑えている。

この自動化システムを自分で構築するには、いくつかのステップを踏む必要がある。最初に、GitHubに新しいリポジトリを作成し、プロジェクトに必要なファイル群(monitor.pyrequirements.txt.github/workflows/monitor.ymlREADME.mdstate/ディレクトリ)を配置する。次に、Xの開発者ポータルで開発者アカウントを作成し、アプリケーションを設定して、Xの投稿を取得するための「Bearer token」というアクセスキーを取得する。同様に、Telegramアプリ内で「BotFather」という公式ボットと対話して新しいBotを作成し、Telegramにメッセージを送るための「Bot token」を取得する。さらに、Botにメッセージを送る先のチャットを特定するために、特定のURL(https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates)にアクセスし、自身の「チャットID」を特定する。これらの取得したXのBearer token、TelegramのBot token、チャットID、そして監視したいXのユーザー名を、作成したGitHubリポジトリの「Settings」セクションにある「Secrets」機能に安全に設定する。GitHub Actionsが正しく動作し、状態ファイルを更新できるように、リポジトリの権限設定でコンテンツの書き込み(permissions: contents: write)が許可されていることを確認する必要がある。初めてシステムを実行する際は、過去の全ての投稿を通知してしまうことを防ぐため、最新のオリジナル投稿のIDを記録するだけで、実際のTelegram通知は行わない。この初回実行で状態が初期化され、次回以降の実行から新しい投稿のみが通知されるようになる。

もしシステムが期待通りに動作しない場合は、トラブルシューティングが必要である。XのAPIに関連するエラー(例えば401、403、429といったHTTPステータスコード)が表示された場合は、Bearer tokenが正しく設定されているか、Xのアプリケーションに必要なアクセス権限があるか、またはAPIの利用制限に達していないかを確認する。Telegramのメッセージが届かない場合は、TelegramのBot tokenやチャットIDが正しいか、またはBotがチャット内でブロックされていないかなどを確認する必要がある。また、last_seen.jsonファイルが正しく更新されない場合は、GitHub Actionsの権限設定や、ファイルが初回実行後に作成されているかを確認することが重要である。このシステムは、監視対象のXユーザー名、実行間隔、通知対象のフィルタリング条件などを自由にカスタマイズできるため、自身の具体的なニーズに合わせて柔軟に変更することが可能である。

このような自動化プロジェクトは、API連携、自動実行のスケジューリング、データの状態管理、そして機密情報のセキュリティといった、システム開発の基礎的な概念を実践的に学ぶ絶好の機会を提供する。特に、プログラミングやGitHubの利用をこれから始めるシステムエンジニア志望の初心者にとって、具体的な事例を通じてこれらの知識とスキルを習得する手助けとなるだろう。記事では、AIアシスタントの活用が、問題の範囲定義、クリーンなコードの作成、GitHub Actionsのセットアップ、詳細なドキュメント作成といった多くのプロセスを効率化し、開発時間の短縮に貢献したと述べられており、現代の開発におけるAIの役割の一端も示されている。このシステムを導入することで、ユーザーは手間なく、自分にとって本当に必要な情報を効率的に得られるようになる。

関連コンテンツ

関連IT用語

関連ITニュース