Telegram Bot

作者 claude-office-skills9c4c7d5cd281MIT499 个星标收录于 2026年10月8日更新于 2026年10月8日仓库8个月前更新

Telegram bot development - chatbots, notifications, AI assistants, and group automation

AI 生成的概览

指导构建用于聊天机器人、通知、AI 助手和群组自动化的 Telegram 机器人。

功能
该技能提供创建 Telegram 机器人的参考模式与配置示例,涵盖通过 BotFather 进行机器人设置、针对文本、命令、照片、文档、语音和位置的消息处理,以及 n8n 工作流结构。它还记录了 AI 助手、通知与告警模板、欢迎与审核等群组自动化流程,以及内联键盘和内联查询。它产出的是指导与示例配置,而非可直接运行的代码。
适用场景
当需要规划或记录用于聊天、通知、AI 回复或群组管理的 Telegram 机器人时使用。适合希望在实现前获得设置步骤、消息处理模式和消息模板的团队。
运行要求
需要来自 BotFather 的 Telegram 机器人令牌和聊天 ID;示例涉及 n8n 实例、telegram-mcp 服务器及其工具,以及 GPT-4、Whisper 等 AI 模型。隐含需要访问 Telegram API 的网络连接。不附带脚本,该技能仅为说明文档。

Telegram Bot

Build Telegram bots for chatbots, notifications, AI assistants, and group automation. Based on n8n's Telegram workflow templates.

Overview

This skill covers:

  • Bot setup and configuration
  • Message handling patterns
  • AI-powered assistants
  • Notification workflows
  • Group automation

Bot Setup

Creating a Bot

yaml
setup_steps:  1. create_bot:      - open: @BotFather on Telegram      - command: /newbot      - provide: bot_name      - provide: bot_username (must end in 'bot')      - receive: API_token        2. configure_bot:      - command: /setdescription      - command: /setabouttext      - command: /setuserpic      - command: /setcommands        3. get_chat_id:      - start: conversation with bot      - call: https://api.telegram.org/bot{TOKEN}/getUpdates      - extract: chat.id from response

Bot Commands

yaml
commands:  - command: /start    description: "Start the bot"      - command: /help    description: "Show available commands"      - command: /status    description: "Check system status"      - command: /subscribe    description: "Subscribe to notifications"      - command: /unsubscribe    description: "Unsubscribe from notifications"

Message Handlers

Basic Message Handler

yaml
workflow: "Telegram Message Handler"trigger: telegram_message
handlers:  text_message:    action: |      1. Parse message text      2. Determine intent      3. Process request      4. Send response        command:    pattern: "^/"    action: route_to_command_handler      photo:    action: |      1. Download photo      2. Process with vision AI      3. Respond with analysis        document:    action: |      1. Download document      2. Extract content      3. Process and respond        voice:    action: |      1. Download audio      2. Transcribe with Whisper      3. Process text      4. Respond (text or voice)        location:    action: |      1. Extract coordinates      2. Lookup local info      3. Respond with relevant data

n8n Workflow

yaml
workflow: "Telegram Bot n8n"
nodes:  - name: "Telegram Trigger"    type: "n8n-nodes-base.telegramTrigger"    parameters:      updates: ["message", "callback_query"]        - name: "Route Message Type"    type: "n8n-nodes-base.switch"    parameters:      rules:        - output: 0          condition: "{{ $json.message.text.startsWith('/') }}"        - output: 1          condition: "{{ $json.message.photo }}"        - output: 2          condition: "{{ $json.message.voice }}"        - output: 3          fallback: true            - name: "Process with AI"    type: "n8n-nodes-base.openAi"    parameters:      model: "gpt-4"      messages:        - role: "system"          content: "You are a helpful Telegram assistant."        - role: "user"          content: "{{ $json.message.text }}"            - name: "Send Response"    type: "n8n-nodes-base.telegram"    parameters:      chatId: "{{ $json.message.chat.id }}"      text: "{{ $json.response }}"

AI-Powered Bot

GPT-4 Integration

yaml
ai_bot:  name: "AI Assistant Bot"    system_prompt: |    You are a helpful AI assistant on Telegram.        Guidelines:    - Be concise (Telegram has message limits)    - Use emojis appropriately    - Format with markdown when helpful    - Ask clarifying questions if needed      features:    - conversational_memory: true    - context_window: last_10_messages    - tools: [web_search, calculator, weather]      message_formatting:    max_length: 4096    split_long_messages: true    use_markdown: true

Multi-Modal Bot

yaml
multimodal_bot:  handlers:    text:      model: gpt-4      action: chat_completion          image:      model: gpt-4-vision      action: analyze_and_respond          voice:      transcribe: whisper      process: gpt-4      respond: text_or_voice          document:      extract: based_on_type      summarize: gpt-4      respond: text

Notification System

Alert Bot

yaml
workflow: "System Alert Bot"
triggers:  - source: monitoring_system    event: alert  - source: ci_cd    event: build_status  - source: ecommerce    event: new_order    notification_templates:  alert:    format: |      🚨 *Alert: {severity}*            *Service:* {service}      *Message:* {message}      *Time:* {timestamp}            [View Dashboard]({dashboard_link})        build:    format: |      {status_emoji} *Build {status}*            *Project:* {project}      *Branch:* {branch}      *Commit:* `{commit_short}`            {details}        order:    format: |      🛒 *New Order!*            *Order:* #{order_id}      *Customer:* {customer}      *Total:* ${total}      *Items:* {item_count}      routing:  by_severity:    critical: [admin_group, on_call_user]    warning: [team_group]    info: [logging_channel]

Scheduled Notifications

yaml
scheduled_notifications:  daily_digest:    schedule: "9am daily"    template: |      📊 *Daily Summary - {date}*            📈 Sales: ${sales} ({change})      👥 New users: {new_users}      🎫 Open tickets: {tickets}            Have a great day! ☀️        weekly_report:    schedule: "Monday 9am"    template: weekly_metrics_report      reminder:    trigger: custom_event    template: |      ⏰ *Reminder*            {reminder_text}            Scheduled by: {creator}

Group Automation

Welcome Bot

yaml
group_bot:  on_member_join:    action: |      1. Check if new member      2. Send welcome message      3. Share rules      4. Suggest introduction          template: |      👋 Welcome to {group_name}, {user_name}!            Please:      1. Read the /rules      2. Introduce yourself      3. Ask questions anytime!            Enjoy your stay! 🎉        on_member_leave:    action: optional_goodbye      moderation:    - spam_detection: auto_delete + warn    - link_filtering: whitelist_only    - flood_control: rate_limit

Poll & Survey Bot

yaml
poll_bot:  commands:    /poll:      format: "/poll Question | Option1 | Option2 | ..."      action: create_poll          /survey:      action: start_multi_question_survey          /results:      action: show_aggregated_results        features:    - anonymous_voting: optional    - multiple_choice: optional    - scheduled_close: optional    - export_results: to_sheets

Inline Features

Inline Keyboard

yaml
inline_keyboard:  example:    text: "Choose an option:"    keyboard:      - row:          - text: "Option 1"            callback_data: "opt_1"          - text: "Option 2"            callback_data: "opt_2"      - row:          - text: "Cancel"            callback_data: "cancel"              callback_handler:    opt_1:      action: process_option_1      response: "You selected Option 1"          opt_2:      action: process_option_2      response: "You selected Option 2"          cancel:      action: cancel_operation      response: "Operation cancelled"

Inline Query

yaml
inline_mode:  trigger: "@botname query"    results:    - type: article      title: "{query} result"      description: "Click to send"      message_text: "Result for: {query}"          - type: photo      photo_url: "{search_result_image}"          - type: gif      gif_url: "{gif_url}"

Output Example

Request: "Create a Telegram notification bot for server alerts"

Output:

markdown
# Server Alert Telegram Bot
## Setup
1. Create bot with @BotFather2. Get token: `123456:ABC-DEF...`3. Get chat ID for alerts channel
## n8n Workflow
```yamlnodes:  1. Webhook (receives alerts)  2. Format Message  3. Telegram Send

Alert Templates

Critical Alert:

🚨 CRITICAL ALERT
Server: production-web-01Status: DOWNTime: 2026-01-30 14:32:05 UTC
Details:- CPU: 98%- Memory: 95%- Disk: 89%
[View Grafana] [Acknowledge]

Recovery:

✅ RECOVERED
Server: production-web-01Downtime: 5 minutesStatus: All systems normal
Incident resolved automatically.

Implementation

javascript
// Send alert functionasync function sendAlert(severity, message, details) {  const emoji = {    critical: '🚨',    warning: '⚠️',    info: 'ℹ️',    success: '✅'  };    const text = `${emoji[severity]} *${severity.toUpperCase()}*\n\n${message}\n\n${details}`;    await telegram.sendMessage({    chat_id: ALERT_CHANNEL_ID,    text: text,    parse_mode: 'Markdown'  });}

Features

  • Severity-based routing
  • Inline action buttons
  • Acknowledgment tracking
  • Escalation rules

---
*Telegram Bot Skill - Part of Claude Office Skills*

来源与署名

来源:claude-office-skills/skills位于telegram-bot提交9c4c7d5

许可证: MIT

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架