Задать вопрос
@Bananya

Сallback_data. Python. Ошибка TypeError: send_message() got an unexpected keyword argument 'callback_data'?

При запуске кода. выдает ошибку
"bot.send_message (message.chat.id, 'Напиши, и я запомню', callback_data = 'i know')
TypeError: send_message() got an unexpected keyword argument 'callback_data'"

Если callback_data убрать, то все будет работать корректно, но после нажатия кнопки, не будет возможности ввести сообщение.

__________________________________________________________________
import telebot
import vsd
from telebot import types

bot = telebot.TeleBot(vsd.TOKEN)

@bot.message_handler(commands=['start'])
def privet (message):
bot.send_message (message.chat.id, 'HI, WHAT YOU NEED?')

#клавиатура

key = types.ReplyKeyboardMarkup (resize_keyboard = True)
button_1 = types.KeyboardButton ('запомни')
button_2 = types.KeyboardButton ('напомни')
button_3 = types.KeyboardButton ('измени')

key.add (button_1, button_2, button_3)

bot.send_message (message.chat.id, 'I can remember, change and delete your assignments. What will you choose', reply_markup = key)

# logika knopok
@bot.message_handler (content_types=['text'])
def remember (message):
if message.text == (str ('запомни')):
bot.send_message (message.chat.id, 'Напиши, и я запомню', callback_data = 'i know')
#send = input ()
bot.send_message (message.chat.id, 'что-то еще?')
if message.text == (str ('да', callback_data = 'yes')):
bot.send_message (message.chat.id, 'Удачи"')
elif message.text == (str ('нет', callback_data = 'mo')):
bot.send_message (message.chat.id, 'Напиши что надо запомнить')
return remember

bot.polling (none_stop = True)
  • Вопрос задан
  • 5493 просмотра
Подписаться 1 Простой 3 комментария
Решения вопроса 2
@Alexa2007
Это БРЕД!!!
bot.send_message (message.chat.id, 'Напиши, и я запомню', callback_data = 'i know')

Надо примерно вот так:
markup4 = types.InlineKeyboardMarkup()
    item1 = types.InlineKeyboardButton("Разозлиться", callback_data='good1')
    item2 = types.InlineKeyboardButton("Вытереть слезки", callback_data='bad1')
 
    markup4.add(item1, item2)
 
    bot.send_message(message.chat.id, text='Выбрать действие:', reply_markup=markup4)
Ответ написан
shurshur
@shurshur
Сисадмин, просто сисадмин...
callback_data - свойство inline-кнопки, а не сообщения. Поэтому работать это и не может.

keyboard = types.InlineKeyboardMarkup()
keyboard.add(types.InlineKeyboardButton(text="Кнопка 1", callback_data="button1"))
keyboard.add(types.InlineKeyboardButton(text="Кнопка 2", callback_data="button2"))
bot.send_message(message.chat.id, "Нажми на кнопку - получишь результат", reply_markup=keyboard)

@bot.callback_query_handler(func=lambda call: True)
def button_callback(call):
  bot.send_message(call.message.chat.id, f"Ваша кнопка {call.data}")
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы