• 产品简介
  • 快速开始
    • Agent 开发
    • 导入 Git 仓库
    • 从模板开始
    • 直接上传
    • 从 AI 开始
  • 框架指南
    • Agent
    • 前端
      • Vite
      • React
      • Vue
      • Hugo
      • 其他框架
    • 后端
    • 全栈
      • Next.js
      • Nuxt
      • Astro
      • React Router
      • SvelteKit
      • TanStack Start
      • Vike
    • 自定义 404 页面
  • 项目指南
    • 项目管理
    • edgeone.json
    • 缓存配置
    • 构建输出配置
    • 域名管理
      • 概览
      • 自定义域名
      • 配置 HTTPS 证书
        • 概览
        • 申请免费证书
        • 使用 SSL 托管证书
      • 配置 DNS 的 CNAME 记录
    • 错误码
  • 构建指南
  • 部署指南
    • 概览
    • 触发部署
    • 管理部署
    • 部署按钮
    • 使用 Github Action
    • 使用 Gitlab CI/CD
    • 使用 CNB 插件
    • 使用 IDE 插件
    • 使用 CodeBuddy IDE
  • Makers for Platforms
    • 平台与多租户
    • Vibe Coding 解决方案
    • 模板示例
      • Vibe Coding 通用模板
      • Vibe Coding 平台模板
  • 可观测性
    • 概览
    • 指标分析
    • 日志分析
  • Functions
    • 概览
    • Edge Functions
    • Cloud Functions
      • 概览
      • Node.js
      • Python
      • Go
  • Agents
    • 概览
    • 快速开始
    • 会话管理
    • 可观测
    • 沙箱工具
      • 概览
      • Agent 框架使用
      • 沙箱原子 API
      • 网络搜索工具
    • Agent 应用鉴权
  • Models
    • 概览
    • 模型与厂商
      • 概览
      • 使用朱雀模型
      • 使用 Jev 模型
      • 使用厂商密钥
        • OpenAI
        • Anthropic
        • Google AI Studio
        • DeepSeek
        • MiniMax
        • 混元
        • 智谱
        • 月之暗面
    • 常见问题
  • 存储
    • 概览
    • KV
    • Blob
  • 中间件
  • AI 原生开发
    • Skills
    • MCP
    • Plugin
  • Copilot
    • 概览
    • 快速开始
  • API Token
  • EdgeOne CLI
  • Makers SDK
    • 概览
    • 示例
      • 通过 SDK 部署
      • 通过 CLI 部署
      • 项目管理
    • 项目
      • 项目操作
      • 环境变量
    • 部署
  • 消息通知
  • 集成指南
    • AI
      • Makers Models 集成
      • 图片大模型集成
    • 数据库
      • Supabase 集成
      • Pages KV 集成
    • 电商
      • Shopify 集成
      • WooCommerce 集成
    • 支付
      • Stripe 集成
      • Paddle 集成
    • CMS
      • WordPress 集成
      • Contentful 集成
      • Sanity 集成
      • Payload 集成
    • 身份验证
      • Supabase 集成
      • Clerk 集成
    • IM
      • 概览
      • 企业微信
      • 飞书
      • 钉钉
      • Telegram
      • Slack
      • Discord
  • 最佳实践
    • 为网站添加 AI 对话助手
    • AI 对话式部署:使用 Skill 一句话部署项目
    • 使用 Makers Agents 快速搭建 Agent 应用
    • 使用 Shopify 搭建电商平台
    • 使用 Supabase 和 Stripe 搭建 SaaS 站点
    • 如何快速搭建公司品牌站点
    • 如何快速搭建博客站点
    • 在 WorkBuddy 中通过免登录部署快速上线
  • 迁移指南
    • 从 Vercel 迁移至 EdgeOne Makers
    • 从 Cloudflare Pages 迁移至 EdgeOne Makers
    • 从 Netlify 迁移至 EdgeOne Makers
  • 排障指南
  • 常见问题
  • 限制与配额
  • 价格与套餐
  • 联系我们
  • 产品动态

Telegram

本文介绍如何通过 BotFather 创建 Telegram Bot,将消息通过 Webhook 发送到腾讯云 EdgeOne Makers ,由 Agent 生成回复并返回原聊天。

前提条件和适用范围

1. 已有 Telegram 账号,可访问官方 BotFather。
2. 已开通 Makers。
3. 本地已安装 Python 3,用于执行本文的 Webhook 注册脚本。
4. 本文验证私聊文本及群组定向命令,不包含频道发帖、支付、附件或 Telegram Mini Apps。

创建 Bot 并取得 Token

1. 在 Telegram 中打开官方 BotFather,确认用户名为 `@BotFather`。
2. 发送 `/newbot`,按提示输入显示名称,例如 `Makers Assistant`。
3. 输入唯一的 Bot 用户名;按 BotFather 要求使用以 `bot` 结尾的用户名。
4. 创建成功后,复制返回的 Bot Token,安全保存。
5. 记录 Bot 用户名,后续用来打开私聊或指定群组命令的接收对象。

确定权限与会话范围

Telegram 不使用 OAuth Scope 表。本文采用以下最小配置:
场景
所需操作
权限说明
用户私聊
用户先打开 Bot 并单击 **Start** 或发送 `/start`
Bot 不能主动开启与从未联系过它的用户的私聊
群组定向命令
将 Bot 添加到测试群,发送 `/ask@<Bot 用户名> 问题`
保留 Privacy Mode,Bot 无需管理员身份
回复消息
允许 Bot 在所在群组发送消息
不能处于禁言或禁止发消息状态
如 Bot 无法加入群组,在 BotFather 中通过 `/setjoingroups` 检查并允许其加入群组。Privacy Mode 的接收范围见 Bots FAQ。

部署 Makers 模板

2. 在项目环境变量设置中填写以下变量(负责一份.env.example 为.env)。
环境变量
是否必填
填写说明
TELEGRAM_BOT_TOKEN
是
BotFather 返回的 Token
TELEGRAM_WEBHOOK_SECRET_TOKEN
是
生成的 Webhook Secret
3. 保存配置并部署
4. 复制生产环境 HTTPS 域名,在末尾添加 /telegram
5. 注意服务应该部署在全球可用区,telecom 服务才能正确访问。

注册 Webhook

1. 在本地终端执行以下完整命令,创建并运行注册脚本。脚本通过隐藏输入读取 Token 和 Webhook Secret;
2. 输入的 Secret 必须与 Makers 中的 `TELEGRAM_WEBHOOK_SECRET_TOKEN` 一致。脚本会将当前 Bot 的消息接收地址设置为您输入的 URL,并查询注册结果;
3. 请使用本次新建的测试 Bot。

cat > register-telegram-webhook.py <<'PY'
import getpass
import json
import re
import urllib.error
import urllib.parse
import urllib.request

bot_token = getpass.getpass('Bot Token(隐藏输入):').strip()
secret = getpass.getpass('Webhook Secret(与 Makers 一致):').strip()
webhook_url = input('完整 HTTPS 回调 URL:').strip()
if not re.fullmatch(r'[A-Za-z0-9_-]{1,256}', secret):
raise SystemExit('Webhook Secret 只能包含字母、数字、下划线和连字符,长度 1~256。')
if not webhook_url.startswith('https://') or not webhook_url.endswith('/telegram'):
raise SystemExit('请填写生产 HTTPS 域名加 /telegram。')

def api(method, fields):
request = urllib.request.Request(
'https://api.telegram.org/bot' + bot_token + '/' + method,
data=urllib.parse.urlencode(fields).encode(),
method='POST',
)
try:
with urllib.request.urlopen(request, timeout=30) as response:
result = json.load(response)
except urllib.error.HTTPError as error:
raise SystemExit(f'Telegram HTTP {error.code},请检查 Token 和网络。') from None
except urllib.error.URLError:
raise SystemExit('无法连接 Telegram Bot API,请检查网络。') from None
if not result.get('ok'):
raise SystemExit('Telegram 拒绝请求,请检查 URL、证书及参数。')
return result['result']

api('setWebhook', {
'url': webhook_url,
'secret_token': secret,
'allowed_updates': json.dumps(['message']),
})
info = api('getWebhookInfo', {})
print('Webhook URL:', info.get('url'))
print('Pending updates:', info.get('pending_update_count', 0))
print('Last error time:', info.get('last_error_date', 'none'))
print('注册完成,请继续发送消息验证。')
PY
python3 register-telegram-webhook.py

发送消息并验证

1. 根据 BotFather 提供的链接打开 Bot,单击 Start。
2. 发送 `请用一句话介绍腾讯云 EdgeOne Makers。`。
3. 确认聊天中出现 `Thinking…`,随后更新为最终回复。
4. 再发送 `请把上一条回答缩短为十个字以内。`,确认第二轮回复。



ai-agent