【发布时间】:2015-12-14 19:53:59
【问题描述】:
我正在尝试使用 botFather 从我的机器人中删除所有命令。我找不到这方面的文档。可以选择向 BotFather 发送新的命令列表,但这对我没有帮助,因为我的机器人在使用自定义键盘时没有任何命令。
知道怎么做吗?
【问题讨论】:
标签: telegram telegram-bot
我正在尝试使用 botFather 从我的机器人中删除所有命令。我找不到这方面的文档。可以选择向 BotFather 发送新的命令列表,但这对我没有帮助,因为我的机器人在使用自定义键盘时没有任何命令。
知道怎么做吗?
【问题讨论】:
标签: telegram telegram-bot
BotFather 只是维护您提供的命令列表。
您可以使用它执行新的 /setcommands,但实际上无法从那里更改机器人的功能。
【讨论】:
我觉得@ixchi 的答案是现在的妥协。公平地说,可能无法删除 Telegram 约定 (/something) 中所有先前设置的命令,因此至少您必须至少设置一个 /start 或 /help 命令。
Telegram bot API 中命令概念的问题/限制现在被认为是一个 GLOBAL 列表,在机器人创建时设置一次:-(
这对于一个非常简单的聊天机器人应用程序来说是可以的,但对于必须处理具有许多不同“状态”的复杂“状态机”的机器人来说并不是最好的。
我想要的是在运行时设置 CONTEXTUAL 命令列表。
我用一个例子来解释:
假设聊天机器人对话状态为:shopping_cart_order_processing
在这种情况下,我想使用与此状态相关的列表来完成输入界面:
/add item_id
/remove item_id
/list 列出购物车中的所有商品
/checkout 提交您的订单!
等等。 等等
之后,当用户下订单时,order_sent 的状态可能会发生变化,命令列表也会发生变化!
当然,限制只是用户界面聊天应用程序设施( / 按钮/弹出列表)的问题,并且机器人无论如何都可以解释任何用户语句,例如:
/帮助
帮助
提出上下文命令列表。
我希望我的考虑能有所帮助。
无论如何,我想将此“更改请求”发送给 Telegram Bot 人员……但我不知道如何联系 bot 人员以获得 CR。
无论如何,Telegram Bot API 都很棒,而且现在正在开发中(请参阅:https://core.telegram.org/bots/api)!
【讨论】:
只需使用 /setcommands 添加一个新的命令列表。
您的旧列表将被覆盖。
【讨论】:
没有像“删除命令”这样的直接功能。您只需要再次覆盖命令。是这样的。假设您有如下命令集
假设您需要从机器人中删除命令 /status。首先你需要去 @BotFather 获取你的机器人列表,使用 /mybots 选择你的机器人,然后选择 Edit bot 下一个 Edit命令。现在您将提示添加新的命令集。然后给出没有你需要删除的命令列表。如下所示
爱 - 爱是永恒的
伴侣 - 回报伴侣
然后 BotFather 将向您的新机器人添加新命令集。如果您无法立即看到新的命令集,请不要担心。他们将在 10 分钟后添加
【讨论】:
与今天一样,您可以发送命令 /empty 删除编辑命令菜单中的所有命令。
【讨论】: