首页 > 解决方案 > Telethon 中有机器人菜单吗?

问题描述

我正在用Telethon构建一个应用程序,并且几乎完成了它。现在还有一些美丽要做,我发现互联网(以及文档)中没有很好的解释如何制作机器人的菜单。

一两年前,我用TeleBot构建了另一个机器人,它使用types.ReplyKeyboardMarkup. 我可以看到 Telethon 文档是如何提到ReplyKeyboardMarkup的,但我仍然无法完成我的机器人菜单。

为了清楚起见,我想要做的看起来像这样:

标签: pythontelegramtelegram-bottelethon

解决方案


哦,我发现我使用了错误的 Button 类型(inline而不是text)。工作代码:

from telethon import events, Button

bot = ...

@bot.on(events.NewMessage(pattern='/start'))
async def handle_start_command(event):
    markup = event.client.build_reply_markup([
        [Button.text('First button')],
        [Button.text('Second button')]
    ])
    await event.respond("Hello!", buttons=markup)

结果如下所示:

文档说:

您可以使用inlineswitch_inlineurl一起auth创建内联按钮(在消息下方)。

您可以使用textrequest_locationrequest_phone一起request_poll 创建回复标记(替换用户键盘)。


推荐阅读