如何使用telebot删除频道名称已更改的消息?
我写了一个机器人,它每隔N分钟就会更改一次Telegram频道的名称。但是,当频道名称被更改时,Telegram会自动发送一条消息,告诉大家频道名称已经更改。
我尝试使用bot.delete_message
这个命令,但我不知道怎么才能删除那条具体的消息。
1 个回答
0
如果你想删除Telegram在你更改频道名称时自动发送的消息,可以使用Telebot库里的channel_post_handler装饰器来拦截并删除这些消息。
示例代码如下:
bot.py
import telebot
bot = telebot.TeleBot('BOT_TOKEN')
@bot.channel_post_handler(content_types=['new_chat_title'])
def channel_name_changed(message):
try:
bot.delete_message(message.chat.id, message.message_id)
except Exception as e:
print("Error deleting message:", e)
if __name__ == '__main__':
bot.polling()
changer.py
import random
from time import sleep
import telebot
bot = telebot.TeleBot('BOT_TOKEN')
def change_channel_name():
new_name = random.choice(["Channel 1", "Channel 2", "Channel 3", "Channel 4", "Channel 5"])
try:
bot.set_chat_title(
"@CHAT",
new_name
)
except Exception as e:
print("Error changing channel name:", e)
def main():
while True:
change_channel_name()
sleep(10)
if __name__ == '__main__':
main()