2017-09-01 2 views
0

私はpython-telegram-botモジュールを使って電報ボットを作成しました。管理group.Theボットでボットステッカー、GIFや音声がグループに送信されたときに削除されなければならない。しかし、ボットがthem.botコードを削除しません:テレグラムボットは、グループに送信されたステッカー、Gif、およびボイスを削除する必要がありますが、削除しないでください。

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() 

実行中にエラーがありません。しかし、ボットは何もしません!

答えて

0

このライブラリにはdelete_sticker,delete_gif、もありません。あなたが探しているのはbot.delete_message()です。

Filters.stickerFilters.voiceのような広範なフィルタを使用することもできます。

詳細(編集):あなたは(Filters.stickerとの使用で)行うことができる。例えば

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() 
+0

私の英語はよくないと私はあなたのページを読むことができません私のコードを修正してください。 – Sajjad

+0

特定のタイプのメッセージを受信したときにメッセージを削除する際の最小限の例を含むように答えを更新しました。 – jeffffc

関連する問題