skill-telegram は何をしますか?
AIエージェントに必要な唯一のTelegramスキル。メッセージの読み取り、チャンネルの解析、ボイスノートのダウンロードが可能。Telethonを使用したユーザーAPI。
概要
このスキルは、AIエージェントがTelegramのユーザーAPI(Telethon経由)と対話するための機能を提供します。メッセージの読み取り、チャンネルやグループの解析、音声メッセージのダウンロードなどを可能にし、Telegram上の自動化とデータ収集を支援します。
前提条件
- Python 3.8以上
- Telegram APIの認証情報(
api_idとapi_hash)- my.telegram.org で取得可能
インストール
pip install telethon
セットアップ
環境変数を設定するか、コード内で直接認証情報を指定します。
export TELEGRAM_API_ID="your_api_id"
export TELEGRAM_API_HASH="your_api_hash"
または、.env ファイルを使用することもできます。
TELEGRAM_API_ID=your_api_id
TELEGRAM_API_HASH=your_api_hash
使用方法
メッセージの読み取り
from telethon import TelegramClient
import os
api_id = os.getenv('TELEGRAM_API_ID')
api_hash = os.getenv('TELEGRAM_API_HASH')
client = TelegramClient('session', api_id, api_hash)
async def main():
await client.start()
async for message in client.iter_messages('channel_username', limit=10):
print(message.sender_id, message.text)
with client:
client.loop.run_until_complete(main())
チャンネルの解析
async def list_channels():
dialogs = await client.get_dialogs()
for dialog in dialogs:
if dialog.is_channel:
print(f"チャンネル名: {dialog.name}, ID: {dialog.id}")
ボイスノートのダウンロード
async def download_voice(message):
if message.voice:
path = await message.download_media(file='voice_notes/')
print(f"ボイスノートをダウンロードしました: {path}")
対応プラットフォーム
- Claude Code
- Cursor
- Codex
- その他、PythonとTelethonをサポートするAIエージェント環境
注意事項
- このスキルはユーザーAPIを使用するため、通常のTelegram利用規約が適用されます。
- 大量のリクエストを行うと、一時的な制限がかかる場合があります。
sessionファイルは認証情報をキャッシュするため、安全に保管してください。
ライセンス
MIT