Telegram 机器人 setMyCommands 不起作用(PHP)

Mar*_*tin 1 php-telegram-bot

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

function setMyCommands($cmds) {
  $cmds_encoded = json_encode($cmds);
  apiRequest("setMyCommands?commands=".$cmds_encoded);
}
Run Code Online (Sandbox Code Playgroud)

这是命令数组:

$cmds_available = [
["command" => "a", "description" => "aaa"],
["command" => "b", "description" => "bbb"],
["command" => "c", "description" => "ccc"],
];
Run Code Online (Sandbox Code Playgroud)

我称这个函数为:setMyCommands($cmds_available);

该函数已成功调用。但命令没有更新。我曾经apiRequest("getMyCommands")得到我的命令。他们是旧人。

我到处调整。之前有过一次效果。但后来它再也不起作用了。我不知道我是否可能在某个地方搞砸了。

任何帮助表示赞赏!

Mar*_*tin 5

这段代码确实有效!

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

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

我在这上面浪费了很多时间,直到最后(并且意外地)发现了真正的问题。希望它可以帮助其他像我一样困惑的人。