Существует регистрация для бота-телеграммы, но после ввода первого значения (имени) произошла ошибка "ОШИБКА - TeleBot:" KeyError, args = (75 ******* (здесь указан user_id) ), залито в него раньше)) все работало хорошо, но после расширения входного значения все умерло. Я был бы рад услышать, что не так с кодом, так как я пишу всего 3 дня.
import requests, telebot, logging
from telebot import types, apihelper
from telegram import Update
from telegram.ext import Updater, CommandHandler
from telegram import ReplyKeyboardMarkup
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="0000",
port="3306",
database="work_bot_telegram"
)
@bot.message_handler(commands=['help'])
def help_list(message):
a = ['/start', '/reg_employer', '/help', '/url', "/switch"]
for i in a:
bot.send_message(message.chat.id, i)
class User:
def __init__(self, first_name):
self.first_name = first_name
self.last_name = None
self.middle_name = None
self.phone_number = None
self.subjects_civil_law = None
self.region = None
self.services_provided = None
@bot.message_handler(commands=['reg_employer']) # получение команды
def send_welcome(message):
msg = bot.send_message(message.chat.id, "Введите Ваше имя: ")
bot.register_next_step_handler(msg, process_lastname_step)
def process_lastname_step(message):
user_id = message.from_user.id
user_data[user_id] = User(message.text)
msg = bot.send_message(message.chat.id, "Введите Вашу фамилию: ")
bot.register_next_step_handler(msg, process_middlename_step)
def process_middlename_step(message):
user_id = message.from_user.id
user_data[user_id] = User(message.text)
msg = bot.send_message(message.chat.id, "Введите Вашу отчество: ")
bot.register_next_step_handler(msg, process_phonenumber_step)
def process_phonenumber_step(message):
user_id = message.from_user.id
user_data[user_id] = User(message.text)
msg = bot.send_message(message.chat.id, "Введите Вашу номер телефона: ")
bot.register_next_step_handler(msg, process_subjects_civil_law_step)
def process_subjects_civil_law_step(message):
user_id = message.from_user.id
user_data[user_id] = User(message.text)
msg = bot.send_message(message.chat.id, "Укажите вы являетесь юридическим или физическим лицом: ")
bot.register_next_step_handler(msg, process_region_step)
def process_region_step(message):
user_id = message.from_user.id
user_data[user_id] = User(message.text)
msg = bot.send_message(message.chat.id, "Укажите Ваш город: ")
bot.register_next_step_handler(msg, process_services_provided_step)
def process_services_provided_step(message):
user_id = message.from_user.id
user_data[user_id] = User(message.text)
msg = bot.send_message(message.chat.id,
"Каким видом деятельности вы занимаетесь (стройка, программирования, разработка систем, оказание услуг): ")
bot.register_next_step_handler(msg, process_lastname_step)
def process_lastname_step(message):
#try:
user_id = message.from_user.id
user = user_data[user_id]
sql = "INSERT INTO users_employer (first_name, last_name, middle_name, phone_number, subjects_civil_law, region, services_provided, user_id) " \
"VALUES (%s, %s, %s, %s, %s, %s, %s, %s)"
val = (
user.first_name, user.last_name, user.middle_name, user.phone_number, user.subjects_civil_law, user.region,
user.services_provided, user.user_id)
mycursor.execute(sql, val)
mydb.commit()
bot.send_message(message.chat.id, "Вы зарегистрированы")
#except Exception as e: \
#bot.send_message(message.chat.id, "Вы уже зарегистрированы")
@bot.message_handler(content_types=['text'])
def get_text_messages(message):
if message.text == "Привет":
bot.send_message(message.from_user.id, "Привет, чем я могу тебе помочь?")
else:
bot.send_message(message.from_user.id, "Я тебя не понимаю.")
bot.polling()