python - Telethon 中有机器人菜单吗?
问题描述
我正在用Telethon构建一个应用程序,并且几乎完成了它。现在还有一些美丽要做,我发现互联网(以及文档)中没有很好的解释如何制作机器人的菜单。
一两年前,我用TeleBot构建了另一个机器人,它使用types.ReplyKeyboardMarkup
. 我可以看到 Telethon 文档是如何提到ReplyKeyboardMarkup
的,但我仍然无法完成我的机器人菜单。
为了清楚起见,我想要做的看起来像这样:
解决方案
哦,我发现我使用了错误的 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)
结果如下所示:
文档说:
您可以使用
inline
、switch_inline
和url
一起auth
创建内联按钮(在消息下方)。您可以使用
text
、request_location
和request_phone
一起request_poll
创建回复标记(替换用户键盘)。
推荐阅读
- javascript - 在间隔内调用函数会导致我的 JS 文件中出现“Uncaught TypeError: this._FunctionName is not a function”
- c# - 使用 Roslyn 从编译中获取所有类型?
- python - Django ArrayField 默认应该是可调用的
- python - 在一个轮子中包装一个轮子
- swift - 为什么我的 didUpdate userLocation 方法没有被调用?
- python - 如何仅使用 While 循环和条件按字母顺序排列字符串?
- winapi - 如果我将 wndproc 函数分配给 wndclass 则会发生错误
- reactjs - 为什么我在 React 中返回时需要一个额外的包装器?
- javascript - web worker - 传回主线程时数据未定义
- android - 如何使用 Kotlin Flow 从异步回调中发出数据?