当命令/ start被发送到机器人时,机器人应该删除发送给该组的贴纸;但机器人不起作用

时间:2017-09-18 11:58:17

标签: python python-telegram-bot

我使用Python-Telegram-Bot框架构建了一个电报机器人。我将它添加到一个组并管理该组中的机器人。

机器人代码:

from telegram.ext import Updater, MessageHandler, CommandHandler, Filters

updater = Updater(token='TOKEN')
dispatcher = updater.dispatcher

def sticker_method(bot, update):
    update.message.delete()

def sticker_delete():
    dispatcher.add_handler(MessageHandler(Filters.sticker, sticker_method))
    updater.start_polling() 
    updater.idle()

def sticker_undelete():
    dispatcher.remove_handler(MessageHandler(Filters.sticker, sticker_method))

start_command = CommandHandler('start', sticker_delete)
dispatcher.add_handler(start_command)

notdelete_command = CommandHandler('notdelete', sticker_undelete)
dispatcher.add_handler(notdelete_command)

updater.start_polling() 
updater.idle()

在群组创建者发送机器人命令/start后,机器人将删除群组成员发送给群组的贴纸。

此外,当组创建者命令/notdelete将其发送到机器人时,机器人不应删除成员发送给该组的贴纸。

但机器人不起作用;当组创建者将组命令/start发送到机器人时,它不会删除发送给组的机器人贴纸。

您认为问题是机器人不起作用???

代码不会给出任何错误,但正如我所说,机器人不起作用。

1 个答案:

答案 0 :(得分:0)

首先,确保它超级组,而不是正常组

您的机器人需要删除消息权限,并且应禁用隐私模式。

Bots无法获取消息列表,只有当有人发送消息列表时才会收到消息列表,因此您需要将启用/禁用状态记录到您自己的数据库中,并在收到新消息时删除Sticker。