I'm trying to make a function in telegram bot which will add a button with a link to any text message, here is a main part of a code:
message_user_send = {}
name_of_url = {}
url_user_send = {}
############################
@bot.message_handler(commands=['aaa'])
def send(message):
msg1 = bot.send_message(message.chat.id, 'Put main text')
bot.register_next_step_handler(msg1, name_of_link)
def name_of_link(message):
message_user_send[message.text] = message.text
msg1 = bot.send_message(message.chat.id, 'Put name of url')
bot.register_next_step_handler(msg1, send_alll)
def send_alll(message):
name_of_url[message.text] = message.text
msg1 = bot.send_message(message.chat.id, 'Put url')
bot.register_next_step_handler(msg1, send_all_userss)
def send_all_userss(message):
url_user_send[message.text] = message.text
markup = types.InlineKeyboardMarkup()
b1 = types.InlineKeyboardButton(name_of_url[message.text], url= url_user_send[message.text])
markup.add(b1)
keyboard_markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
bot.send_message(message.chat.id, message_user_send, reply_markup=markup)
############################
But when I am trying to put name_of_url[message.text]
(the text which produses on button b1
) in button it does not work and gives an error:
line 85, in send_all_userss
b1 = types.InlineKeyboardButton(name_of_url[message.text], url= url_user_send[message.text])
~~~~~~~~~~~^^^^^^^^^^^^^^
KeyError: 'https://stackoverflow.com/questions/1871524/how-can-i-convert-json-to-csv'
However, if I use just text in ""
it works, what am I doing wrong?
instead of name_of_url
should be text which user send before.
message_user_send = {}
name_of_url = {}
url_user_send = {}
############################
@bot.message_handler(commands=['aaa'])
def send(message):
msg1 = bot.send_message(message.chat.id, 'Введи текст который нужно отправить')
bot.register_next_step_handler(msg1, name_of_link)
def name_of_link(message):
message_user_send[message.from_user.id] = message.text # <--
msg1 = bot.send_message(message.chat.id, 'Введи название ссылки')
bot.register_next_step_handler(msg1, send_alll)
def send_alll(message):
name_of_url[message.from_user.id] = message.text # <--
msg1 = bot.send_message(message.chat.id, 'Введи url')
bot.register_next_step_handler(msg1, send_all_userss)
def send_all_userss(message):
url_user_send[message.text] = message.text
markup = types.InlineKeyboardMarkup()
b1 = types.InlineKeyboardButton(name_of_url[message.from_user.id], url= url_user_send[message.text])
markup.add(b1)
keyboard_markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
bot.send_message(message.chat.id, message_user_send[message.from_user.id], reply_markup=markup)
############################