Php 在电报机器人中使用编辑消息

Php 在电报机器人中使用编辑消息,php,telegram,telegram-bot,Php,Telegram,Telegram Bot,我正试图在电报机器人中编辑消息。 我正在使用以下代码。我可以毫无问题地发送消息,但编辑消息部分不起作用。它什么都没做 <?php if ($_SERVER['HTTPS'] != "on") { $url = "https://". $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; header("Location: $url"); exit; } $botToken="XXXX..."; $website="https://a

我正试图在电报机器人中编辑消息。 我正在使用以下代码。我可以毫无问题地发送消息,但编辑消息部分不起作用。它什么都没做

   <?php

if ($_SERVER['HTTPS'] != "on") {
$url = "https://". $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
header("Location: $url");
exit;
}

$botToken="XXXX...";
$website="https://api.telegram.org/bot".$botToken;

$content = file_get_contents("php://input");
$update = json_decode($content, true);
$chatId = $update["message"]["chat"]["id"];
$message = $update["message"]["text"];

switch($message) {
    case("action"):
                sendMessage($chatId, "What should I do?");
    break;

    case("add"):
        editMessageText($chatId, "should I add?");

    break;

default:
    sendMessage($chatId, "default");
}

function sendMessage($chatId, $message) {

$url = $GLOBALS[website]."/sendMessage?    chat_id=".$chatId."&text=".urlencode($message)."&reply_markup".$reply1;
file_get_contents($url);
}

function editMessageText($chatId, $messageId, $message) {

$url = $GLOBALS[website]."/editMessageText?chat_id=".$chatId."&message_id=".$messageId."&text=".urlencode($message);
file_get_contents($url);

}

function file_get_contents_curl($url) {
$ch = curl_init();

curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);       

$data = curl_exec($ch);
curl_close($ch);

return $data;
}


?>

你知道它有什么问题吗?
谢谢

问题出在代码的这一部分

case("add"):
    editMessageText($chatId, "should I add?");
您没有正确地传递参数。方法需要一个参数
message\u id
,该参数应为“整数”

这应该是工作代码

    <?php

    if ($_SERVER['HTTPS'] != "on") {
    $url = "https://". $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
    header("Location: $url");
    exit;
    }

    $botToken="XXXX...";
    $website="https://api.telegram.org/bot".$botToken;

    $content = file_get_contents("php://input");
    $update = json_decode($content, true);
    $chatId = $update["message"]["chat"]["id"];
    $message = $update["message"]["text"];
    // get message_id
    $messageId = $update["message"]["message_id"];
    switch($message) {
        case("action"):
                    sendMessage($chatId, "What should I do?");
        break;

        case("add"):
        // add the 2nd parameter
            editMessageText($chatId, $messageId, "should I add?");

        break;

    default:
        sendMessage($chatId, "default");
    }

    function sendMessage($chatId, $message) {

    $url = $GLOBALS[website]."/sendMessage?    chat_id=".$chatId."&text=".urlencode($message)."&reply_markup".$reply1;
    file_get_contents($url);
    }

    function editMessageText($chatId, $messageId, $message) {

    $url = $GLOBALS[website]."/editMessageText?chat_id=".$chatId."&message_id=".$messageId."&text=".urlencode($message);
    file_get_contents($url);

    }

    function file_get_contents_curl($url) {
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);       

    $data = curl_exec($ch);
    curl_close($ch);

    return $data;
    }


    ?>

说:

请注意,目前只能编辑不带回复标记或内嵌键盘的邮件


您可以使用API。

这个问题太笼统,无法知道问题的原因。检查是否使用了所有变量,
file\u get\u contents
返回什么?检查是否使用了完整的
$url
。此外,您还可以检查是否正在使用特殊字符(如空格)打开URI,您需要使用urlencode()对URI进行编码。开发时应启用
错误报告(-1)
$GLOBALS[网站]
应该会提醒您一些事情。。除非在定义小写常量时违反所有标准。