You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP Telegram Bot仅发送消息到频道而非频道聊天的问题求助

解决Telegram Bot重复发送消息到频道及频道聊天的问题

首先,我发现你当前是用频道的用户名(@xxx)来指定消息发送目标,这大概率是导致重复发送的核心原因。Telegram中,频道和它关联的讨论组(频道聊天)是绑定关系,使用用户名形式的ID时,系统可能会因为关联设置出现解析歧义——哪怕Bot没加入讨论组,也可能误将消息同时投递到两个地方。

下面给你具体的解决步骤:

1. 获取频道的纯数字ID

你需要先拿到频道的唯一数字ID(而非用户名),方法很简单:

  • 给目标频道发送一条测试消息,然后通过Bot调用getUpdates方法,或者借助Telegram的ID查询机器人(比如@getidsbot),就能获取到频道的数字ID(通常是负数格式,比如-1001234567890)。

2. 修改代码中的目标ID

把代码里的$canalID= "@xxx";替换成刚获取到的纯数字ID,示例如下:

$canalID = "-1001234567890"; // 替换为你的频道实际数字ID

为什么这样能解决问题?

纯数字ID是Telegram平台对频道的唯一精准标识,使用它可以明确指定消息发送到频道本身,不会触发关联讨论组的误投递。而用户名形式的解析逻辑存在歧义,容易因为频道的关联设置导致消息“分流”到两个地方。

从你提供的代码来看,其他参数设置都是正常的,只需要替换ID形式就能解决重复发送的问题,你可以测试一下这个方案。


内容的提问来源于stack exchange,提问作者Ale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:24:05