-2
我試圖編輯電報機器人中的消息。 我正在使用下面的代碼。我可以發送沒有問題的消息,但編輯消息部分不起作用。它只是沒有做任何事情!在電報機器人中使用編輯消息
<?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;
}
?>
任何有關它可能會出錯的想法? 感謝
這個問題過於籠統,沒有辦法知道這個問題的原因。 檢查你是否使用了所有的變量,''file_get_contents''返回什麼?,檢查你是否使用完整的''url'''。 你也可以檢查如果你打開一個帶有特殊字符(比如空格)的URI,你需要使用urlencode()來編碼URI。 –
開發時應該啓用'error_reporting(-1)'。 '$ GLOBALS [網站]'應該警告你一些事情。除非你在定義常量小寫時違反所有標準。 – Xorifelse
感謝您的意見。我添加了完整的代碼! – Sorena