五个问题
这一页不做什么
上面的清单是浏览器里的一段脚本。它把你选中的情况,对应到 Telegram Bot API 和日常托管里常见的失败。它不会调用 getMe、getWebhookInfo,也不会调用任何 WhatsApp 接口,更不会测量你的服务器。要读一个正在运行的机器人,需要 token 和主机权限,而这正是本页拒绝收下的东西。
如果某一行日志里有 token,不要把那一行贴进聊天、工单或表单。进程启动时常常会意外打印 token。能在 BotFather 里看到这个机器人的人,可以撤销已经泄露的 token,并把新值只放在服务器上。
Webhook 和长轮询
Telegram 机器人并不跑在 Telegram 的服务器上。你的某个程序要么在 getUpdates 上等待(长轮询),要么在 setWebhook 登记的地址上接收 HTTP POST。Bot API 把这两种方式当作互斥:webhook 还在时,getUpdates 不会把排队的更新交出来。应用里还能打开的机器人,也可以因为那个程序已经退出而完全不回复。
getWebhookInfo 会报告当前地址、还在等待的更新数量(pending_update_count),以及最后一次投递错误(last_error_date、last_error_message)。等待数量上升,表示 Telegram 还拿着这些更新,而你的地址没有收下。用户感受到的就是沉默。本页不能替你调用 getWebhookInfo;已经持有 token 的人可以自己调用,而不必把 token 发到这里。
同一个 token 的两份程序会返回 409 Conflict。常见的一份是笔记本电脑通宵轮询,服务器上也在轮询;或者旧主机的 webhook 没有删掉,新主机又在轮询。从聊天里看,就是时而回复、时而不回复。
过期的 TLS 证书
Webhook 需要 HTTPS,端口是 443、80、88 或 8443,并且证书要能被 Telegram 验证。证书过期,或证书上的名字和主机对不上,会在 TLS 阶段失败,你的处理函数还没运行。主机面板可以一直显示机器是开着的。如果你已经知道那个公开地址,浏览器会显示证书警告,不需要任何密钥。不知道地址就不要猜。
自动续期的证书,会在续期任务停掉、80 端口被关掉,或域名不再指向这台机器时停止续期。机器人的代码没有改。变的是门口的锁。
被撤销的 token
在 BotFather 里撤销 token 之后,api.telegram.org 会对旧 token 返回 401 Unauthorized。进程会继续使用环境里的那个值。不替换就重启,失败方式相同。新 token 只应放在服务器环境里,权限不要设成所有人可读,也不该出现在别的地方。它不属于这一页。
如果你打不开 BotFather 里的这个机器人,就无法撤销 token,也无法改 webhook。已经有对话的人可能还能打开用户名,但身份的控制权在仍然拥有 BotFather 的那个人手里。换一个新机器人就是新的用户名和新的对话,旧聊天不会搬家。原开发者拿着服务器登录时也是同一种分裂:机器可以被关掉或改掉密码,聊天窗口不会显示这件事。
频率限制和付款窗口
发得太快会返回 429 Too Many Requests,以及 retry_after 的秒数。Telegram 公开的建议是:同一个聊天里大约每秒一条,同一个群大约每分钟不超过 20 条。群发循环如果忽略 429,看起来像机器人卡住了。那不是服务器死了。
付款比普通消息更严。机器人必须在 10 秒内回答 pre_checkout_query,并且在 successful_payment 到达之前不能交付。进程卡在数据库锁上,就会错过这个窗口。客户看到的是付款失败,或者付了款却没收到东西。之后 Stars 退款要用的编号存在机器人那边。本站看不到它,也不代收、不把钱付出去。Telegram 页面只在数字商品这个较窄的范围内说明 Stars。
服务器上的进程
常见的停止都很普通。进程退出了,没有东西再把它拉起来。内核因为内存不足把它杀掉。磁盘写满。两个进程打开同一个文件,SQLite 报 database is locked。面板上的“运行中”指的是虚拟机,不是你的程序。如果服务器连不上 api.telegram.org 的 HTTPS,轮询会失败,进程却还在。Webhook 是反方向:Telegram 连不进来。
进程一退出就重启的监督程序,修不好错误的 token 或错误的配置。日志才能区分一次崩溃和反复重启。不要转发含有 token 的那一行日志。
WhatsApp 是同一件事,另一扇门
Meta 官方 WhatsApp Cloud API 上的机器人,只能看到 Meta 投递到该商业应用 webhook 的消息。地址停了或不回应,新对话到不了程序。应用和 token 在 Meta 商业账户里。短期 token 到期就停止工作。如果只有原来的开发者能打开这个应用,在权限转到你名下之前,token 换不了。
这一页不复述 Meta 的审核时间、模板规则或按国家区分的价格。那些属于 Meta;本站写到的部分在 WhatsApp 页面,账单给账户所有者。不要把系统用户 token 贴进表单。
什么时候停止自查、交给别人
如果你还能打开服务器和代码,而且故障是今天开始的,就继续查。看进程、证书,以及是不是有第二份程序在跑。
如果客户可能已经付了款,如果你同时打不开服务器和代码,或者唯一能打开的人不再回复,就该交出去。接手从列出哪些账户还在开始,然后修复或重建真正要用的路径。按月托管是之后单独的约定:有人发现进程停了,保留备份,并跟上平台接口的变化。接手与修复先免费体检,按问题评估报价。托管页按月收费,按复杂度定价,确认范围后才定。接管页写的是这次评估。这份清单不是报价,也不是扫描。
把结论带去表单。
写明机器人在哪个平台、现在怎样、你还能打开什么。初步情况就够开始评估。