【问题标题】:The telegram bot should delete Sticker, Gif, and Voice that are sent to the group;but do not delete them电报机器人应该删除发送到群组的贴纸、Gif 和语音;但不要删除它们
【发布时间】:2017-09-01 09:28:28
【问题描述】:

我用 python-telegram-bot 模块构建了一个电报机器人。我将机器人添加到组中,并在管理员组中获取了机器人。当贴纸、Gif 或语音发送到组时,机器人应该被删除;但是bot不会删除它们。bot代码:

from telegram.ext import Updater, MessageHandler, Filters

def sticker_method(bot, update):
    bot.delete_sticker(chat_id = update.message.chat_id, sticker_id = update.sticker.chat_id)
    bot.delete_gif(chat_id = update.message.chat_id, gif_id = update.gif.chat_id)
    bot.delete_voice(chat_id = update.message.chat_id, voice_id = update.voice.chat_id)


def main():
    updater = Updater(token='TOKEN')
    dispatcher = updater.dispatcher
    dispatcher.add_handler(MessageHandler(Filters.all, sticker_method))

    updater.start_polling()
    updater.idle()


if __name__ == '__main__':
    main()
# for exit
# updater.idle()

执行过程中没有错误;但是bot什么都不做!

【问题讨论】:

    标签: python-2.7 python-telegram-bot


    【解决方案1】:

    这个库中没有delete_stickerdelete_gifdelete_voice 方法。你要找的是bot.delete_message()

    您还可以使用一些广泛的过滤器,例如Filters.stickerFilters.voice

    更多信息(已编辑):

    例如你可以这样做(使用Filters.stickerMessage.delete()):

    def delete_sticker_callback(bot, update):
        update.message.delete()
    
    
    def main():
        updater = Updater(token='TOKEN')
        dispatcher = updater.dispatcher
        dispatcher.add_handler(MessageHandler(Filters.sticker, delete_sticker_callback))
    
        updater.start_polling()
        updater.idle()
    
    
    if __name__ == '__main__':
        main()
    

    【讨论】:

    • 我的英文不好,看不懂你说的那些页面,请更正我的代码
    • 我更新了答案以包含一个关于在接收到某种类型的消息时删除消息的最小示例。
    猜你喜欢
    • 1970-01-01
    • 2019-12-31
    • 2021-04-21
    • 2019-03-06
    • 2022-11-02
    • 2018-11-27
    • 2018-09-25
    • 2021-06-05
    • 2021-10-10
    相关资源
    最近更新 更多