我怎样才能让它正常工作?(python,TeleBot代码)

问题描述 投票:0回答:1

我试图制作电报机器人,它将重新发送消息给机器人所有者,当我第一次测试它时,它工作正常,但后来我改变了一些东西,保存了,它就坏了。机器人现在发送 2 条消息,而不是应有的 1 条,为什么以及如何解决这个问题?

这是代码:

import telebot
BOT_TOKEN= 'token'
bot = telebot.TeleBot(BOT_TOKEN)
@bot.message_handler(commands=['start'])
def start(message):
    bot.send_message(message.chat.id, 'Тест бота.')
@bot.message_handler()
def reply(message):
    bot.reply_to(message, message.text)
    bot.send_message(owner_id, message.text)
#———————————————

bot.infinity_polling()

我尝试用 1 个消息处理程序完成所有操作,但似乎无法正常工作

例如它应该像这样工作:

User --> Message --> Bot;
Bot --> Message --> User(for test),Owner;

但是它的工作原理是这样的:

User --> Message --> Bot;
Bot --> Message --> User(for test),Owner; (its being repeated so user and owner are getting 2 messages instead of 1)
python telebot
1个回答
0
投票

就我个人而言,它对我来说应该有效。作为所有者,您是否有机会不检查此内容?因为机器人总是会将他的消息转发给他。 这是修复它的代码:

import telebot

BOT_TOKEN = ''
bot = telebot.TeleBot(BOT_TOKEN)

owner_id = ""

@bot.message_handler(commands=['start'])
def start(message):
    bot.send_message(message.chat.id, 'Тест бота.')
    
@bot.message_handler(func=lambda message: True)
def reply(message):
    bot.reply_to(message, message.text)
    if int(message.from_user.id) != int(owner_id):
        bot.send_message(owner_id, message.text)
#———————————————

bot.infinity_polling()
© www.soinside.com 2019 - 2024. All rights reserved.