2017-09-28 50 views
0

我使用Python-Telegram-Bot框架和Re模块创建电报机器人。 机器人应该删除成员发送给群组的标签,也就是说,当单词start发送给群组时,它将删除在群组start之后发送的机器人标签。电报机器人不会从群组中删除贴纸

我的代码:

​​

但机器人不工作,也就是发送的话start发送到组后,不会删除发送到该组的贴纸。

该代码不会给出任何错误。而且该组是一个超级组,并且该bot是管理员并且可以访问消息!

你认为是什么问题?

+0

是机器人组管理员? –

+0

@Ali Hashemi组中的机器人管理员。 – Sajjad

回答

0

这条线if re.match(i, update, message.text):是问题所在。您在update对象中搜索i(其值为/start)。我不明白为什么这应该工作。

您需要检查当前消息是否为贴纸。如果消息是贴纸,则update.effective_message.sticker将返回一个值。否则它将返回None。所以你可以检查一个贴纸与我猜 - 我没有测试它:

from telegram.ext import Updater, MessageHandler, Filters 


def delete_sticker(bot, update): 
    if update.effective_message.sticker: 
     update.message.delete 


if __name__ == '__main__': 
    updater = Updater(token='TOKEN') 
    dispatcher = updater.dispatcher 
    dispatcher.add_handler(MessageHandler(Filters.all, delete_sticker)) 

    updater.start_polling() 
    updater.idle() 
+0

这不行! – Sajjad