LeavingDeadGirl Asked:2023-11-19 03:33:04 +0000 UTC2023-11-19 03:33:04 +0000 UTC 2023-11-19 03:33:04 +0000 UTC 保存用户通过远程机器人键盘输入的数据 772 我的机器人向用户发送一张图片和两个按钮,用户单击其中一个。我不知道如何记住用户的选择并将其与所选图片的名称一起写入数据库? 机器人算法:发送一张照片 -> 用户单击其中一个按钮(照片评级) -> 记录照片的评级和姓名 python 1 个回答 Voted Best Answer Иван Ипатов 2023-11-19T04:21:23Z2023-11-19T04:21:23Z 不幸的是,如果您想存储用户的结果而不使用回调,那么您将不得不使用bot.register_next_step_handler() 如果我理解正确的话,那么你需要这种功能(字典data,当然你需要用数据库替换它) def photo_kb(): kb_photo = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True, row_width=5) star_1 = types.KeyboardButton("1") star_2 = types.KeyboardButton("2") star_3 = types.KeyboardButton("3") star_4 = types.KeyboardButton("4") star_5 = types.KeyboardButton("5") kb_photo.add(star_1, star_2, star_3, star_4, star_5) return kb_photo data = { "photo": "", "stars": 0 } @bot.message_handler( func=lambda message: message.text.lower() == "фото") def photo_send(message): image_file = random.choice(["img/1.png", "img/2.png"]) img = open(image_file, 'rb') data["photo"] = img.name bot.send_photo(message.chat.id, img) sent = bot.send_message(message.chat.id, "Оцени", reply_markup=photo_kb()) bot.register_next_step_handler(sent, set_star) def set_star(message): data['stars'] = int(message.text) bot.send_message(message.chat.id, f"Спасибо!") bot.send_message(message.chat.id, f'{data["photo"]} {data["stars"]}')
不幸的是,如果您想存储用户的结果而不使用回调,那么您将不得不使用
bot.register_next_step_handler()如果我理解正确的话,那么你需要这种功能(字典
data,当然你需要用数据库替换它)