我如何使用 TeleBot input()?

How can I input() using TeleBot?

我想知道我是否可以 input() 使用 TeleBot 依赖项。

例如控制台方式:

POL = float(input("Enter your POL: ))

有没有办法使用 Telebot,例如:

bot.send_message(message.chat.id, "Enter your POL")
## Get message.text into POL variable. 

据我了解,没有直接的方法可以做到这一点,但您可以查看用户从

回复的消息
replied_message = message.reply_to_message.message_id

如果它与您发送的消息的 ID 匹配,那么这就是对您消息的回复。您可以从

获取您发送的消息的ID
sent_message = bot.send_message(message.chat.id, "Enter your POL")
sent_message_id = sent_message.message_id
import telebot


TELEGRAM_TOKEN = '<TOKEN>'

bot = telebot.TeleBot(TELEGRAM_TOKEN)
user_register_dict = {}

@bot.message_handler(commands=['start'])
def start(message):
    bot.reply_to(message , 'now send your name')
    user_register_dict[message.chat.id] = {}
    bot.register_next_step_handler(message , start_step2)

def start_step2(message):
    user_register_dict[message.chat.id]['name'] = message.text
    bot.reply_to(message , 'now send your age')
    bot.register_next_step_handler(message , start_step3)

def start_step3(message):
    user_register_dict[message.chat.id]['age'] = message.text
    bot.reply_to(message , 'your name is {} and you are {} years old!'
    .format(user_register_dict[message.chat.id]['name'] , 
    [message.chat.id]['age'] ))

    start(message = message)

创建一个 dict 来处理数据,这很重要,因为如果您使用 lists(例如)可能 2 个人同时开始注册并且数据会崩溃!

create bot.register_next_step_handler(例如第 13 行)与直接连接之间的区别,例如末尾的 start(message = message) 是在 register_next_step_handler 机器人等待新消息,并在收到消息时将其放入消息中并开始叛逃,但直接开始叛逃机器人不等待用户消息,并使用当前消息开始叛逃 start(message = message)