我正在尝试构建电报机器人,它使用 userBot 将消息从特定通道转发到机器人,然后机器人应该对转发的消息自动做出反应
@client.on(events.NewMessage(chats=CHANNEL_ID))
async def forward_to_bot(event):
await client._forward_messages(‘bot name’, event.message)
print(f"'{event.message.id}")
client.start(phone)
client.run_until_disconnected()
@bot.message_handler func=lambda message: message.forward_from_chat and message.forward_from_chat.id == CHANNEL ID)
def handle forwarded_message(message) :
bot.reply_to(message, "Received forwarded message from the correct channel: {message, forward_from _chat.title]")
bot.polling()
当我手动从频道转发消息时,机器人可以工作,但是当从 userBot 自动转发消息时,它不起作用,那么问题到底出在哪里?
实际上我发现,如果用户机器人代码正在运行,即使我没有使用它,其他机器人代码也会停止,所以即使向机器人本身发送消息,它也不会对此做出反应
我使用多处理库解决了这个问题,让每个机器人(用户机器人和我的机器人)在不同的线程中运行