所以我用pyTelegramBotApi做一个电报机器人 我制作了一个答复键盘,该键盘出现在/ start命令之后,事实是,当用户按下按钮时,他们应该会收到一些消息以及带有该消息的嵌入式键盘。而且我不知道如何将嵌入式键盘(kinda)放入回复键盘。
def start_command(message):
keyboard = types.ReplyKeyboardMarkup(row_width=1, resize_keyboard=True)
button1 = types.KeyboardButton(text="Button 1", FUNC1)
button2 = types.KeyboardButton(text="Button 2", FUNC2)
button3 = types.KeyboardButton(text="Button 3", FUNC3)
keyboard.add(button1, button2, button3)
bot.send_message(
message.chat.id,
'Hello!',
reply_markup=keyboard
)
FUNC1,FUNC2,FUNC3代表应该使用嵌入式键盘发送文本的东西(功能)
答案 0 :(得分:0)
不要与“键盘”一词混淆,当您看到一个“经典”键盘粘在聊天底部时,这只是一堆消息模板,没有别的(有两个特殊按钮) ,一个问地理,另一个问电话,但现在还没关系。
那么,当用户按下带有“按钮1”文本的按钮时会发生什么?带有该文本的消息将发送到您的机器人。为了正确处理该文本,请编写一个处理程序来检查message.text
的完全匹配。为方便起见,我对您的代码进行了一些更新,并为用户按下带有“按钮1”文本的按钮时的情况编写了一个处理程序。
当用户按下“按钮1”时,您的机器人将通过包含一个内嵌按钮的内嵌键盘向他们发送消息,从而导致stackoverflow.com。
# This is your original function, however, I removed "FUNC 1", "FUNC 2" and "FUNC 3"
# from buttons' properties.
@bot.message_handler(commands=["start"])
def start_command(message):
keyboard = types.ReplyKeyboardMarkup(row_width=1, resize_keyboard=True)
button1 = types.KeyboardButton(text="Button 1")
button2 = types.KeyboardButton(text="Button 2")
button3 = types.KeyboardButton(text="Button 3")
keyboard.add(button1, button2, button3)
bot.send_message(message.chat.id, 'Hello!', reply_markup=keyboard)
# Here's a simple handler when user presses button with "Button 1" text
@bot.message_handler(content_types=["text"], func=lambda message: message.text == "Button 1")
def func1(message):
keyboard = types.InlineKeyboardMarkup()
url_btn = types.InlineKeyboardButton(url="https://stackoverflow.com", text="Go to StackOverflow")
keyboard.add(url_btn)
bot.send_message(message.chat.id, "Button 1 handler", reply_markup=keyboard)