M
M
Maria Hoffman2020-12-12 17:59:54
Python
Maria Hoffman, 2020-12-12 17:59:54

Python bot on telegram, how to change message in inline keyboard?

I need that after pressing the button under the prediction, the starting inscription "Choose a cookie ..." appears, I don't understand what the mistake is. Runs and then writes this: ERROR - TeleBot: "A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: message identifier is not specified"

# -*- coding: utf8 -*-

import telebot
from telebot import types, TeleBot
import time
from email import message

bot: TeleBot = telebot.TeleBot('***')

@bot.message_handler(content_types=['text'])
def inline_key(a):
    if a.text == "Хочу предсказание":
        mainmenu = types.InlineKeyboardMarkup( )
        key1 = types.InlineKeyboardButton(text='', callback_data='key1')
        key2 = types.InlineKeyboardButton(text='', callback_data='key2')
        key3 = types.InlineKeyboardButton(text='', callback_data='key3')
        mainmenu.add(key1, key2, key3)
        bot.send_message(a.chat.id, 'Выбери печеньку...', reply_markup=mainmenu)


@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
    global mainmenu
    if call.data == "mainmenu":
        mainmenu = types.InlineKeyboardMarkup( )
        key1 = types.InlineKeyboardButton(text='', callback_data='key1')
        key2 = types.InlineKeyboardButton(text='', callback_data='key2')
        key3 = types.InlineKeyboardButton(text='', callback_data='key3')
        mainmenu.add(key1, key2, key3)
        bot.edit_message_reply_markup(call.message.chat.id, call.message.message_id, reply_markup=mainmenu)

    elif call.data == "key1":
        next_menu = types.InlineKeyboardMarkup( )
        back = types.InlineKeyboardButton(text='✨', callback_data='mainmenu')
        next_menu.add(back)
        bot.edit_message_text('Лучшее - враг хорошего.', call.message.chat.id, call.message.message_id,
                              reply_markup=next_menu)
    if call.data == "mainmenu":
        bot.edit_message_text('Выбери печеньку...', reply_markup=mainmenu)



    elif call.data == "key2":
        next_menu2 = types.InlineKeyboardMarkup( )
        back = types.InlineKeyboardButton(text='✨', callback_data='mainmenu')
        next_menu2.add(back)
        bot.edit_message_text('Каждому причитается столько счастья, сколько сам в силах подарить.',
                              call.message.chat.id, call.message.message_id,
                              reply_markup=next_menu2)
    if call.data == "mainmenu":
        bot.edit_message_text('Выбери печеньку...', reply_markup=mainmenu)


    elif call.data == "key3":
        next_menu2 = types.InlineKeyboardMarkup( )
        back = types.InlineKeyboardButton(text='✨', callback_data='mainmenu')
        next_menu2.add(back)
        bot.edit_message_text('Дорога в тысячу миль начинается с первого шага.', call.message.chat.id,
                              call.message.message_id,
                              reply_markup=next_menu2)
    if call.data == "mainmenu":
        bot.edit_message_text('Выбери печеньку...', reply_markup=mainmenu)


bot.polling(none_stop=True, interval=0)

Answer the question

In order to leave comments, you need to log in

1 answer(s)
Y
Yura, 2020-12-12
@N0tdefined

# -*- coding: utf8 -*-
bot: TeleBot = telebot.TeleBot('1484311639:AAFoANckqoWvHr0G8XCw6CpGSuf-fXUGBn4')
@bot.message_handler(content_types=['text'])
def inline_key(a):
if a.text = = "I want prediction":
mainmenu = types.InlineKeyboardMarkup( )
key1 = types.InlineKeyboardButton(text='1', callback_data='key1')
key2 = types.InlineKeyboardButton(text='2', callback_data='key2')
key3 = types.InlineKeyboardButton(text='3', callback_data='key3')
mainmenu.add(key1, key2, key3)
bot.send_message(a.chat.id, 'Pick a cookie...', reply_markup=mainmenu)
@ bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
if call.data == "mainmenu":
mainmenu = types.InlineKeyboardMarkup()
key1 = types.InlineKeyboardButton(text='1', callback_data='key1')
key2 = types.InlineKeyboardButton(text='2', callback_data=' key2')
key3 = types.InlineKeyboardButton(text='3', callback_data='key3')
mainmenu.add(key1, key2, key3)
bot.send_message(call.message.chat.id, "Choose a cookie..." , reply_markup=mainmenu)
elif call.data == "key1":
next_menu = types.InlineKeyboardMarkup( )
back = types.InlineKeyboardButton(text='✨', callback_data='mainmenu')
next_menu.add(back)
bot.edit_message_text('Perfect is the enemy of good.', call.message.chat.id, call.message.message_id,
reply_markup=next_menu)
elif call.data == "key2":
next_menu2 = types.InlineKeyboardMarkup( )
back = types .InlineKeyboardButton(text='✨', callback_data='mainmenu')
next_menu2.add(back)
bot.edit_message_text('Everyone deserves as much happiness as they can give.',
call.message.chat.id, call.message .message_id,
reply_markup=next_menu2)
elif call.data == "key3":
next_menu2 = types.InlineKeyboardMarkup( )
back = types.InlineKeyboardButton(text='✨', callback_data='mainmenu')
next_menu2.add(back)
bot.edit_message_text('A journey of a thousand miles begins with the first step.', call.message.chat.id,
call. message.message_id,
reply_markup=next_menu2)
bot.polling(none_stop=True, interval=0)

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question