我有一个电报机器人,对于任何收到的消息,在服务器中运行程序并将其结果发回。但有个问题!如果用户向我的机器人发送太多消息(垃圾邮件),它将使服务器如此忙碌!
有没有办法阻止那些在一秒钟内发送超过5条消息而又不再收到消息的人? (使用电报api !!)
答案 0 :(得分:3)
首先我要说Telegram Bot API本身没有这样的能力,因此你需要自己实现它,你需要做的就是:
每次机器人收到消息时,都必须运行数据库查询,以查看发件人的chatID是否存在于Black_List表中。如果它存在,它应该继续自己的工作并忽略该消息(或者甚至它可以向用户发送警告说:"您被阻止。"我认为这可能是耗时的)。
请注意,据我所知,当前的电报机器人API没有停止接收消息的功能,但正如我上面提到的,您可以忽略来自垃圾邮件发送者的消息。
为了节省时间,您应该避免建立数据库连接 每次机器人收到更新(消息),而不是,您可以加载 Black_List中存在的ChatID到DataSet并更新 DataSet刚插入新的垃圾邮件发送者ChatID后即可 Black_List表。这样查询的数量就会减少 明显。