首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当用户删除bot的聊天时,如何从db中删除Telegram-bot用户

当用户删除bot的聊天时,如何从db中删除Telegram-bot用户
EN

Stack Overflow用户
提问于 2022-08-17 13:10:29
回答 2查看 218关注 0票数 0

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-17 16:23:53

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

票数 2
EN

Stack Overflow用户

发布于 2022-08-17 18:09:07

也许它会对某人有帮助。我使用Flask-SQLAlchemy来处理数据库,而aiogram用于bot-开发。确保您导入了这个“从aiogram.utils.exceptions导入BotBlocked”来处理用户阻塞bot的异常。

代码语言:javascript
运行
复制
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()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73389076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档