Telegram Bot добавление кнопок
import telebot
from telebot import types
bot=telebot.TeleBot('TOKEN')
@bot.message_handler(commands=['start'])
def start(message):
markup=types.ReplyKeyboardMarkup(row_width=2, resize_keyboard=True)
btn1=types.KeyboardButton('? Провести сделку')
btn2=types.KeyboardButton('? Мои сделки')
# btn3=types.KeyboardButton('? Мои сделки')
btn3 = types.KeyboardButton('? Помощь')
# btn7=types.KeyboardButton('♻В начало')
markup.add(btn1,btn2,btn3)
bot.send_message(message.chat.id,'Добро пожаловать на Funpay AutoGarant, приятных сделок '+message.from_user.first_name,reply_markup=markup)
def go():
print('вызвана функция go')
@bot.message_handler(commands=['go'])
def menu(message):
markup_inline = types.InlineKeyboardMarkup()
item_yes = types.InlineKeyboardButton(text = 'Принять', callback_data = 'yes')
item_no = types.InlineKeyboardButton(text = 'Отказаться', callback_data = 'no')
bot.send_message(message.chat.id, 'Доброго времени суток, вы желаете провести сделку?')
bot.send_message(message.chat.id, 'Введите TelegramID пользователя с кем хотите провести сделку, далее нажмите "Принять" или "Отказаться" ')
markup_inline.add(item_yes, item_no)
bot.send_message(message.chat.id, 'Сделайте выбор', reply_markup=markup_inline)
bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
if call.data == 'yes':
go()
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
if call.data == 'yes':
markup_inline = types.InlineKeyboardMarkup()
btn_my_site = types.InlineKeyboardButton(text='Передать предмет', url='https://steamcommunity.com/tradeoffer/new/?partner=73601843&token=b-x64LSH')
markup_inline.add(btn_my_site)
bot.send_message(call.message.chat.id, 'Для начала отправьте на нашего трейд-бота предмет',reply_markup=markup_inline)
elif call.data == 'no':
bot.send_message(call.message.chat.id, 'Ваш выбор - Отказаться')
# bot.edit_message_text('Ваш выбор - Отказаться', call.message.chat.id, call.message.message_id)
if __name__=="__main__":
bot.polling(none_stop=True)
Ответы (1 шт):
Автор решения: Violet
→ Ссылка
@bot.message_handler(commands=['start'])
def start(message):
markup_inline = types.InlineKeyboardMarkup()
item_yes = types.InlineKeyboardButton(text='Принять', callback_data='yes')
item_no = types.InlineKeyboardButton(text='Отказаться', callback_data='no')
markup_inline.add(item_yes, item_no)
bot.send_message(message.chat.id, 'Сделайте выбор', reply_markup=markup_inline)
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
if call.data == 'yes':
# bot.send_message(call.message.chat.id, 'Ваш выбор - Принять')
bot.edit_message_text('Ваш выбор - Принять', call.message.chat.id,call.message.message_id)
elif call.data == 'no':
bot.send_message(call.message.chat.id, 'Ваш выбор - Отказаться')
# bot.edit_message_text('Ваш выбор - Отказаться', call.message.chat.id, call.message.message_id)
используйте callback_query_handler
Обновление исходя из комментариев к ответу:
def go():
print('вызвана функция go')
@bot.message_handler(commands=['start'])
def start(message):
markup_inline = types.InlineKeyboardMarkup()
item_yes = types.InlineKeyboardButton(text='Принять', callback_data='yes')
markup_inline.add(item_yes)
bot.send_message(message.chat.id, 'Сделайте выбор', reply_markup=markup_inline)
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
if call.data == 'yes':
go()