Telegram Bot API

本篇文章主要是将 Telegram Bot API 的官方文档进行了整理与汉化方便各位开发者能够更好的对接

创建 Telegram Bot

  1. 在 Telegram 中搜索 @BotFather
  2. 在对话框中发送 /newbot
  3. 输入机器人名称 (用作称呼)
  4. 输入机器人用户名以 (bot/Bot) 结尾 (用作机器人账号)
  5. 接下来你就会获得一串 Token (请勿泄漏 拥有 Token 就代表掌握了 Bot 的绝对权限)

测试 Telegram Bot

https://api.telegram.org/bot<YourToken>/getMe

将 <YourToken> 替换为你 Bot 的完整 Token,复制到浏览器即可查看到 Bot 的相关信息。

对于 Telegram Bot API 的所有操作都必须通过 HTTPS 进行通信,并且需要使用以下形式呈现:

https://api.telegram.org/bot<YourToken>/方法名称

使用本地 Bot API Server

Bot API 服务器源代码可在 Telegram-Bot-API 处获得。您可以在本地运行它,并将请求发送到您自己的服务器,而不是 https://api.telegram.org 如果切换到本地 Bot API 服务器,您的机器人将能够:

  • 下载没有大小限制的文件。
  • 上传文件高达2000 MB。
  • 使用其本地路径和文件 URI 方案上传文件。
  • 使用 HTTP URL 进行 webhook。
  • 使用任何本地 IP 地址的 webhook。
  • 使用任何端口的webhook。
  • 设置 max_webhook_connections 高达 100000。
  • 接收绝对本地路径作为 file_path 字段的值,无需在 getFile 请求后下载文件。

获取更新

有两种互斥的方式可以接收机器人的更新 —— 一种是getUpdates方法,另一种是网络钩子(webhooks)。传入的更新会存储在服务器上,直到机器人通过这两种方式中的任意一种接收它们,但这些更新的保存时间不会超过 24 小时。

无论你选择哪种方式,最终都会收到 JSON 序列化的 Update 对象。

Update - 更新

该对象表示一个传入的更新。在任何给定的更新中,最多只能有一个可选参数存在。

字段类型描述
update_id整数更新的唯一标识符 从特定正数开始依次递增 使用网络钩子时可忽略重复更新或恢复顺序 若一周无更新则下个ID随机生成
message消息可选 新收到的文本、照片、贴纸等消息
edited_message消息可选 已知消息被编辑后的新版本
channel_post消息可选 新收到的频道帖子
edited_channel_post消息可选 已知频道帖子被编辑后的新版本
business_connection业务连接可选 机器人连接/断开业务账户或用户编辑连接时触发
business_message消息可选 来自业务账户的新消息
edited_business_message消息可选 业务账户消息被编辑后的版本
deleted_business_messages业务消息已删除可选 业务账户消息被删除时触发
message_reaction消息反应已更新可选 用户更改消息反应(需管理员权限并在allowed_updates指定)
message_reaction_count消息反应计数已更新可选 匿名消息反应数变更(需管理员权限并在allowed_updates指定 可能延迟)
inline_query内联查询可选 新收到的内联查询
chosen_inline_result选择的内联结果可选 用户选择内联结果并发送
callback_query回调查询可选 新收到的回调查询
shipping_query物流查询可选 新物流查询(仅灵活价格发票)
pre_checkout_query预结账查询可选 新预结账查询(含完整信息)
purchased_paid_media付费媒体已购买可选 用户在非频道聊天购买机器人发送的付费媒体
poll投票可选 投票状态更新(仅手动停止或机器人发送的投票)
poll_answer投票答案可选 用户更改非匿名投票答案(仅机器人发送的投票)
my_chat_member聊天成员已更新可选 机器人成员状态更新(私聊中仅触发于屏蔽/解封)
chat_member聊天成员已更新可选 成员状态更新(需管理员权限并在allowed_updates指定)
chat_join_request加群请求可选 加群请求(需can_invite_users权限)
chat_boost聊天加速已更新可选 聊天加速状态新增/变更(需管理员权限)
removed_chat_boost聊天加速已移除可选 聊天加速状态移除(需管理员权限)

getUpdates - 获取更新

使用此方法通过长轮询接收传入的更新。返回一个由 Update 对象组成的数组。

参数类型必填描述
offset整数可选要返回的第一个更新标识符
• 必须比已接收的最高ID大1
• 默认返回最早未确认更新
• 负值获取队列末尾更新(如-5获取最后5条)
limit整数可选获取更新数量限制
• 范围:1-100
• 默认值:100
timeout整数可选长轮询超时时间(秒)
• 0=短轮询(默认)
• 正值=长轮询等待时间
• 短轮询仅建议测试使用
allowed_updates字符串数组可选允许接收的更新类型(JSON格式)
• 示例:["message","callback_query"]
• 空数组=接收除三类敏感更新外的所有类型
• 不设置=沿用上次配置
• 注意:不影响调用前已生成的更新
本站文章均为原创 转载请标注文章来源
使用 Hugo 构建
主题 StackJimmy 设计
本博客已稳定运行
发表了16篇文章 · 总计6.97k字