【问题标题】:Channel adminTelegram bot stops getting the updates after another admin sends a post to the channel频道管理员 Telegram bot 在另一个管理员向频道发送帖子后停止获取更新
【发布时间】:2017-02-15 12:18:42
【问题描述】:

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

在人工管理员向频道发帖后,机器人会停止获取更新和回复。

这段代码将帖子发送到我的频道:

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,我的机器人会检查机器人用户是否是人工管理员之一。如果用户是频道管理员,机器人会将帖子发送到频道。

请帮我解决这个问题。

【问题讨论】:

    标签: c# console-application telegram telegram-bot


    【解决方案1】:

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

    首先您知道机器人无法接收来自其他机器人的消息,所以这就是为什么 bot-admin 的帖子做得很好的原因。
    其次,您应该明确确保在获取所有类型的更新时都会对其进行处理。此类问题的常见情况是不正确地检查更新类型。

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

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

    【讨论】:

    猜你喜欢
    • 2022-01-05
    • 2018-03-08
    • 2018-02-06
    • 1970-01-01
    • 2021-06-09
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多