使用 Telegram webhook 执行代码时 $_POST 变量为空

$_POST variable is empty when code is executed using Telegram webhook

我正在使用 PHP 创建 Telegram 机器人。我已将 webhook 设置为“https://example.com/bot.php”。正如您在下面看到的,我使用 echo 来 运行 创建 HTML 表单的脚本。创建后,表单会自动提交,我使用 POST 方法获取变量。

echo "<script>
        document.write('<form method=\"post\" action=\"\" id=\"myForm\">');
        document.write('<textarea name=\"price\">' + 12345 + '</textarea><br>');
        document.write('<input type=\"submit\" value=\"submit\"></form>');
      </script>";

if (!isset($_POST['price']) ) {
  echo "<script>document.getElementById(\"myForm\").submit();</script>";
}

$price = $_POST['price'];

如果我 运行 "bot.php" 手动(使用 URL),代码工作正常。但是,当我在 Telegram 机器人中发送命令时,$_POST['price']returnsempty。 检查我是否将 isset($_POST['price']) 作为消息发送给了机器人,并且我收到了 0.

如您所知,JS 是客户端,这就是为什么它可以在您的网络浏览器上运行,但不能在 Bot 请求上运行,因为机器人不能 运行 JavaScript。