我是在Python上编写电报-机器人,使用aiogram,我需要删除用户从数据库,当他删除聊天的机器人。我知道,在用户删除bot的聊天后,bot必须得到一些更新。但我的机器人没有收到任何关于它的信息。我试着向删除机器人的用户发送一条消息,希望得到一个错误,然后处理它,并将用户从数据库中删除,但是消息仍然是没有错误发送的。我还读过关于sendChatAction方法的文章,它可以解决这个问题,但是我没有找到好的例子。有什么想法吗?我不需要建议如何从数据库中删除用户,我想知道如何获得错误信息,用户删除了机器人的聊天,我可以处理(异常处理)
发布于 2022-08-17 16:23:53
您可以使用Update.my_chat_member
更新。当用户阻止你的机器人时,这些信息会告诉你。请注意,如果用户只是清除聊天历史记录或删除与bot的聊天而不阻塞bot,则不会通知bot。
发布于 2022-08-17 18:09:07
也许它会对某人有帮助。我使用Flask-SQLAlchemy来处理数据库,而aiogram用于bot-开发。确保您导入了这个“从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()
https://stackoverflow.com/questions/73389076
复制相似问题