我有一个 Telegram 机器人(在 Node JS 中)。
我向 BotFather 发送了一个命令列表:
command 1 - description 1
command 2 - description 2
它在私下运作良好。当我键入“/”时,我会看到可用命令列表,当我单击一个命令时,它会在聊天中发送消息“命令 1”。
但是当我在组中执行此操作时,虽然它也显示命令,但当我单击它时它会发送此消息“命令 1@botusername”,所以它不会'工作。
为什么会这样?我希望对组有相同的行为。
最佳答案
我认为问题是因为您使用了错误的套管系统。
/command 1@botusername 不是正确的命令大小写。
当您在命令名称之间插入空格时, Telegram 假定命令已在 /command
处结束,然后假定其余 1@botusername
作为命令有效负载或只是一个文本,因此它标记了机器人,因为它是一个用户名。
无论如何,你应该避免在命令之间添加空格,我建议使用蛇形外壳或者只是在没有空格的情况下编写它们也知道我们没有像这样的外壳
nocasecommand - description 1 or
snake_case_command - description 1
我尝试过其他大小写,如驼峰式或 PacsalCase,但如果您将命令写在组或私有(private)中,它就可以工作。你不能将它添加到预设命令选项中,因为 Telegram 在他们的命令选项中不支持大写字母,我猜。 For more Check out this image .
关于node.js - Telegram bot 可在组中单击命令,但单击它们会提到 bot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53969031/