电报Bot无法同时进行查询(sendMessage,deleteMessage)吗?

时间:2018-06-22 09:05:39

标签: php api bots telegram-bot

我想通过Telegram Bot API同时执行这两个功能,即sendMessage并同时删除上一条消息。

我不知道为什么我不能同时执行这两种方法。只有一件作品。

function apiRequestWebhook($method, $parameters) {
$parameters["method"] = $method;
header("Content-Type: application/json");
echo json_encode($parameters);
return true;
}
apiRequestWebhook("deleteMessage", array('chat_id' => $chat_id, "message_id" 
=> $message_id));
apiRequestWebhook("sendMessage", array('chat_id' => $chat_id, 
"reply_to_message_id" => $message_id, "text" => '中文群组 : 
https://t.me/SmartMeshCn'));

1 个答案:

答案 0 :(得分:1)

引用Telegram Bot API

  

如果您使用的是Webhooks,则可以在向Webhook发送答案的同时向Bot API执行请求。使用application / json或application / x-www-form-urlencoded或multipart / form-data响应内容类型来传递参数。在请求的方法参数中指定要调用的方法。无法知道这样的请求成功还是得到了结果。

在“请求”上强调我的名字。换句话说,您不能在同一答案中提出多个请求-为此,您必须自己通过HTTP调用方法,因此必须使用curlfile_get_contents(或Telegram Bot API library)调用方法(在Making updates部分中指定)。

例如,使用file_get_contents

function apiRequestWebhook($method, $parameters) {
    $parameters["method"] = $method;
    header("Content-Type: application/json");
    echo json_encode($parameters);
    return true;
}
file_get_contents("https://api.telegram.org/bot123456:CHANGE_ME/deleteMessage?chat_id=$chat_id&message_id=" . ($message_id-2));
apiRequestWebhook("sendMessage", array('chat_id' => $chat_id, 
"reply_to_message_id" => $message_id, "text" => '中文群组 : 
https://t.me/SmartMeshCn'));