在电报机器人中删除消息有时不起作用
Deleting messages in telegram bot sometimes doesn't work
我写了一个电报机器人,它删除在特定时间之间发送到超级组的消息。我正在使用 Telegram.Bot 版本 12.0.0-beta-04.
private async void Bot_OnMessage(object sender, MessageEventArgs e)
{
if(DateTime.Now.Hour<=6 and DateTime.Now.Minute<=30)
{
_bot.DeleteMessageAsync(e.Message.Chat.Id, e.Message.MessageId);
}
}
问题是,如果例如在凌晨 2 点,我发送一条消息它不会执行任何操作,但如果我发送两条或更多条消息几乎没有延迟,它会起作用并删除所有消息。知道为什么会这样吗?
编辑:
我的错。例如,如果小时为 3,分钟为 45,那将不起作用。我修复了代码,它运行良好。
if ((DateTime.Now.Hour < 6) ||
(DateTime.Now.Hour == 6 && DateTime.Now.Minute <= 30))
{
_bot.DeleteMessageAsync(e.Message.Chat.Id, e.Message.MessageId);
}
有更好的解决方案来阻止群内的新消息。更改您的机器人并尝试通过 "restrictChatMember" 限制用户的权限,然后通过 "promoteChatMember".
归还他们的权限
我写了一个电报机器人,它删除在特定时间之间发送到超级组的消息。我正在使用 Telegram.Bot 版本 12.0.0-beta-04.
private async void Bot_OnMessage(object sender, MessageEventArgs e)
{
if(DateTime.Now.Hour<=6 and DateTime.Now.Minute<=30)
{
_bot.DeleteMessageAsync(e.Message.Chat.Id, e.Message.MessageId);
}
}
问题是,如果例如在凌晨 2 点,我发送一条消息它不会执行任何操作,但如果我发送两条或更多条消息几乎没有延迟,它会起作用并删除所有消息。知道为什么会这样吗?
编辑: 我的错。例如,如果小时为 3,分钟为 45,那将不起作用。我修复了代码,它运行良好。
if ((DateTime.Now.Hour < 6) ||
(DateTime.Now.Hour == 6 && DateTime.Now.Minute <= 30))
{
_bot.DeleteMessageAsync(e.Message.Chat.Id, e.Message.MessageId);
}
有更好的解决方案来阻止群内的新消息。更改您的机器人并尝试通过 "restrictChatMember" 限制用户的权限,然后通过 "promoteChatMember".
归还他们的权限