频道管理员 Telegram 机器人在另一个管理员向频道发送 post 后停止获取更新

Channel adminTelegram bot stops getting the updates after another admin sends a post to the channel

我的电报机器人使用 NetTelegramBotApi 库在 C# 中编程,是我频道的三个管理员之一,当我 运行 机器人时,它一直运行良好,直到另一个管理员(人类管理员不是机器人-admin) 发送一个 post 到频道。

The bot stops getting the updates and answering them after human-admin posts to the channel.

这是将 post 发送到我的频道的一段代码:

if(update.Message.Chat.Username == "xxxx" || update.Message.Chat.Username == "yyyy")
{
var req = new SendMessage(ChID, text) { ParseMode = SendMessage.ParseModeEnum.HTML, DisableWebPagePreview = true };
await bot.MakeRequestAsync(req);
var req2 = new SendMessage(update.Message.Chat.Id, "✅Your post was sent successfully.✅");
await bot.MakeRequestAsync(req2);
continue;
}

有关详细信息,ChID 是我的机器人和频道的聊天 ID,我的机器人会检查机器人用户是否是人类管理员之一。如果用户是频道管理员,则机器人会将 post 发送到频道。

请帮我解决这个问题。

问题恰恰在您获取更新代码中。

首先 如您所知,机器人无法接收来自其他机器人的消息,所以这就是机器人管理员 post 做得很好的原因。
其次 你应该明确地确保所有类型的更新在获取时都得到处理。出现此类问题的常见情况是不正确地检查更新类型。

在你的情况下,应该检查任何 updatechannel_postedited_channel_post 类型因为现在它跳过了您的代码,并且机器人在使用这些类型的更新对象进行更新时会抛出异常。

另请注意,如果您希望您的机器人不被丢弃,则需要在所有情况下捕获异常。