如何从数据库中删除Telegram机器人用户,当用户删除机器人的聊天时



我正在Python上使用aiogram编程telegram bot,当用户删除bot的聊天时,我需要从数据库中删除他。我知道在用户删除bot聊天后,bot必须收到一些更新。但我的bot没有收到任何关于它的消息。我试图向删除机器人的用户发送一条消息,希望得到一个错误,然后处理它并将该用户从数据库中删除,但消息仍然发送无错误。我还读到了sendChatAction方法,它可以解决这个问题,但我没有找到好的例子。知道吗?附言:我不需要如何从数据库中删除用户的建议,我想知道如何获得用户删除机器人聊天的信息的错误,我可以处理(异常处理(

您可以使用Update.my_chat_member更新。当用户阻止你的机器人时,这些信息会告诉你。请注意,如果用户只是清除聊天历史记录或删除与你的机器人的聊天而没有阻止机器人,你的机器人不会得到通知。

也许这会对某人有所帮助。我使用Flask SQLAlchemy来处理数据库,并使用aiogram来开发机器人。请确保您导入此";从aiogram.utils.exceptions导入BotBlocked";用于处理用户阻止bot的异常。

from bot_files.models import db, Users
from aiogram.utils.exceptions import BotBlocked
async def technical_works(bot):
users = Users.query.all()
for user in users:
try:
await bot.send_chat_action(user.telegram_id, action="typing")
except BotBlocked as exception_info:
db.session.delete(user)
print("User is deleted")
db.session.commit()

相关内容

最新更新