【问题标题】:How to make telegram keyboard button issue commands?如何使电报键盘按钮发出命令?
【发布时间】:2018-11-18 05:09:54
【问题描述】:

我刚刚使用 Telegram API 文档中的 .KeyboardButton 熟悉了电报机器人的键盘按钮,但我有一个问题;到目前为止,我只能设计按钮,以便单击按钮后的输出与它的标题/占位符相同,这对我想要做的事情真的没有帮助。

我已经设置了所有命令,例如,我希望标记为“Rules”的按钮的输出为 /rules,以便启动命令操作,而不是机器人输出为“Rules”。我正在使用 Python,尽管我对使用其他语言从事相同工作的任何人持开放态度。

【问题讨论】:

    标签: python telegram telegram-bot python-telegram-bot php-telegram-bot


    【解决方案1】:

    单击KeyboardButton 将始终导致发送一条消息,其中包含与它所包含的完全相同的标题。这就是电报中的KeyboardButton 的工作原理。因此,您必须将按钮标记为“/rules”。

    作为替代方案,您可以使用InlineKeyboardButton。您可以选择任何您想要的标签文本并提供额外的callback_data。单击 inlineKeyboardButton 不会打印任何消息,而是将 callback query 发送到您的机器人脚本。然后可以按照您希望的任何方式回答此查询。

    【讨论】:

    • 您好,您能给我一个使用中的 InlineKeyboardButton 的示例代码行吗?起初我尝试过,但我认为我没有做对,所以我会喜欢示例行,谢谢。
    • @EmmanuelBatse 有两个简单的内联机器人示例 1 2
    【解决方案2】:

    您可以在 KeyboardButton 文本中添加一个空格字符,然后从消息中解析它,或者,如果您不希望空格出现在开头,只需将它们添加到末尾。嘿,这还不够,所以可能会使用软连字符,它的十六进制是 \xC2\xAD (它不显示,至少在我的电报中)。

    所以,这对我有用, 希望杜罗夫先生不会改变这一点..

    我在 SF 被 ping 通了,因为投了反对票。是的,好吧,问题是关于 keyboard_markup,它在文本输入区域下方创建按钮,它们产生即时输入,在聊天中打印按钮标题,机器人可能会解析它们作为命令(通常以“/”字符开头),所以问题是如何正确区分它们。这不是推荐的路线(看起来)。

    使用 inline_markup,您可以创建使用自定义数据生成回调的按钮,因此聊天中不会有用户输入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-15
      • 2020-11-02
      • 1970-01-01
      • 2017-12-01
      • 2020-10-10
      • 1970-01-01
      • 2021-06-24
      • 2018-04-28
      相关资源
      最近更新 更多