Telegram 机器人 setMyCommands 不工作 (PHP)

Telegram bot setMyCommands not working (PHP)

我尝试按照 API 设置我的 bot 命令,但它不起作用。这是函数:

function setMyCommands($cmds) {
  $cmds_encoded = json_encode($cmds);
  apiRequest("setMyCommands?commands=".$cmds_encoded);
}

这是命令数组:

$cmds_available = [
["command" => "a", "description" => "aaa"],
["command" => "b", "description" => "bbb"],
["command" => "c", "description" => "ccc"],
];

我调用这个函数:setMyCommands($cmds_available);

函数调用成功。但是命令没有更新。我使用 apiRequest("getMyCommands") 来获取我的命令。他们是旧的。

我一直在调整。它以前工作过一次。但后来它再也没有用过。我不知道我是不是哪里搞砸了。

感谢任何帮助!

这段代码确实有效!

我刚刚发现,如果我继续与机器人对话,对话中的命令列表(通过开始键入“/”)将不会更新。如果我切换到另一个对话,然后切换回与机器人的对话,我就可以看到更新的命令列表。

我偶尔看到代码有效,但大多数时候无效(通过开始键入“\”更改对话中的命令列表)。我很困惑。这是因为大多数时候我只是停留在同一个对话中并开始检查命令是否更新。实际命令已更新,但对话中的命令列表没有更新(同样,直到我切换到另一个对话并回来)。

我在这上面浪费了很多时间,直到最后(意外地)发现了真正的问题。希望能帮到和我一样困惑的人。