Почему не работает ответ от inline_keyboard в Telegram Bot?
Подскажите пожалуйста, почему когда я нажимаю на inline кнопку, мне не приходит ответ "Кнопка нажата" в телеграм.
Возможно с функцией sendTelegram что-то не так?
Или я не правильно обрабатываю callback_data и callback_query ?
<?php
$data = json_decode(file_get_contents('php://input'), TRUE);
$data = $data['callback_query'] ? $data['callback_query'] : $data['message'];
$message = mb_strtolower(($data['text'] ? $data['text'] : $data['data']),'utf-8');
define('TOKEN', 'MY_KEY');
$query_data = $data['data'];
if ($message == '/start')
{
$method = 'sendMessage';
$send_data =
[
'text' => 'Тест inline: ',
'reply_markup' =>
[
'inline_keyboard' =>
[
[
['text' => 'Кнопка 1', 'callback_data' => "button1"]
],
[
['text' => 'Кнопка 2', 'callback_data' => "button2"]
]
]
]
];
}
if ($query_data == 'button1')
{
$method = 'sendMessage';
$send_data =
[
'text' => 'Кнопка 1 нажата',
];
}
$send_data['chat_id'] = $data['chat']['id'];
$res = sendTelegram($method, $send_data);
function sendTelegram($method, $data, $headers = [])
{
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => 'https://api.telegram.org/bot' . TOKEN . '/' . $method,
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => array_merge(array("Content-Type: application/json"), $headers)
]);
$result = curl_exec($curl);
curl_close($curl);
return (json_decode($result, 1) ? json_decode($result, 1) : $result);
}
?>