Никогда ботов не писал, но попробую направить:
bot.register_next_step_handler(message, IPMO(message, sumresid))
Вот тут, насколько я понял из документации, вторым аргументом идет callback. Судя по всему, это должен быть указатель на функцию, которая будет запущена, когда придет сообщение. Если вы указываете функцию так, как указали, вы передаете туда возвращаемое значение, а в вашем случае оно будет None, поскольку она ничего не возвращает, соответственно бот будет пытаться запустить None и вы получите ту ошибку, которую получили.
Если загляните вот
сюда (ссылка на Github бота), то увидите,
# Handle '/start' and '/help'
@bot.message_handler(commands=['help', 'start'])
def send_welcome(message):
msg = bot.reply_to(message, """\
Hi there, I am Example bot.
What's your name?
""")
bot.register_next_step_handler(msg, process_name_step)
def process_name_step(message):
try:
chat_id = message.chat.id
name = message.text
user = User(name)
user_dict[chat_id] = user
msg = bot.reply_to(message, 'How old are you?')
bot.register_next_step_handler(msg, process_age_step)
except Exception as e:
bot.reply_to(message, 'oooops')
Тут, во-первых, устанавливается callback строчкой
bot.register_next_step_handler(msg, process_name_step)
а во-вторых сама функция
process_name_step принимает в качестве аргумента message, то есть сообщение, которое было прислано боту, а дальше из него уже берется вся информация.
Короче, скорее всего, вам нужно в функции
func0, как только поняли, что ID больше одного, отправлять пользователю сообщения с информацией о найденных ID и ждать ответа. Когда ответ придет, сработает callback
IMP0 с аргументом message, из которого станет понятно, что именно хочет пользователь, а дальше ваша стандартная обработка ответа.
Ну, и наверное, еще стоит сказать, что лучше было бы, конечно, не спамить кучу сообщений пользователю на каждый ID, а сформировать одно сообщение со всеми найденными ID и отправить пользователю, а дальше уже ждать ответа именно на него, поскольку аргумент
message, который идет первым в
bot.register_next_step_handler - это, судя по докам, то сообщение, на которое ожидается ответ.