【问题标题】:Telegram Bot Webhook doesn't track channel post deletionTelegram Bot Webhook 不跟踪频道删除后
【发布时间】:2021-08-18 15:09:42
【问题描述】:

我需要将电报频道帖子与我的网站同步。所以,我创建了一个机器人,一个频道,将我的机器人添加到这个频道(具有管理员权限,它可以访问消息)并将我的机器人的 webhook 绑定到指定的服务器 url。一切顺利,创建后的更新已正确发送到服务器 url。唯一的问题是没有跟踪从电报删除频道帖子的更新,因此管理员已手动从服务器数据库中删除帖子。任何想法,如何设置机器人或 webhook 以跟踪帖子删除?

【问题讨论】:

    标签: telegram telegram-bot telegram-webhook


    【解决方案1】:

    使用Bot API 是不可能的,因为 Telegram 不会将大部分事件发送到 Bot 帐户。

    您应该使用MTRPOTO 作为该频道的管理员或订阅者的普通用户(不是机器人)连接到 Telegram 上的号码,并从 Telegram 接收所有事件。

    我建议您使用Telethon(Python MTPROTO 库)。

    删除消息后,您将收到MessageDeleted event

    在 Telethon 的文档网站上有一个例子:

    from telethon import events
    
    @client.on(events.MessageDeleted)
    async def handler(event):
        # Log all deleted message IDs
        for msg_id in event.deleted_ids:
            print('Message', msg_id, 'was deleted in', event.chat_id)
    

    但如果您坚持使用 bot API 执行此操作,则有一个意大利面条式解决方案。您可以使用他们的 ID 将频道帖子转发到另一个聊天室,如果您收到消息不存在错误,则表示该消息已被删除。

    【讨论】:

    • 也许你对 PHP 有决定?我不会用 Python 编写代码
    • @АртемПаламарчук 你应该检查MadelinePROTO,我没有使用它,但它有很好的文档可以帮助你开始。
    猜你喜欢
    • 2017-01-11
    • 2016-07-15
    • 1970-01-01
    • 1970-01-01
    • 2016-04-10
    • 2020-09-22
    • 1970-01-01
    • 2017-08-03
    • 2018-03-12
    相关资源
    最近更新 更多