node.js - Telegram bot 可在组中单击命令,但单击它们会提到 bot

标签 node.js telegram telegram-bot

我有一个 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/

相关文章:

javascript - 即时从文件中读取额外的 javascript 代码

node.js - 显示当前使用 node/express/socket.io 构建的聊天中的用户

node.js - Passport JWT : Cannot read property '_id' of undefined in MEAN

c# - 如何通过 SharpTelegram 在 C# 中使用 Telegram Api

PHP For 循环似乎无法正常工作

python - 通过 iter_messages 识别相册和图像

node.js - 如何使用 Nodejs 在 Express-validator 中验证 multipart/form-data

telegram - 如何使用 Telegram 机器人获取 channel 更新

c# - 将电报机器人添加到组

c# - 在 C# Telegram Bots 中使用键盘编辑短信