Написал две страницы. На первой код, отвечающий за создание клавиатуры, на второй обработчик. Проблема в том, что при нажатии inline кнопки выполняется любой указанный функционал, но кроме редиректа через Location
Первая страница:
<?php
session_start();
include("bot.php");
if (!isset($_GET['r'])) {
$messageText = 'Нажмите на кнопку';
$chat_id = '-чат айди';
$botToken = 'Токен бота';
$keyboard = [
'inline_keyboard' => [
[
['text' => 'Нажми', 'callback_data' => 'button_clicked']
]
]
];
$encodedKeyboard = json_encode($keyboard);
$url = "https://api.telegram.org/bot$botToken/sendMessage";
$data = [
'chat_id' => $chat_id,
'text' => $messageText,
'reply_markup' => $encodedKeyboard
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
}
?>
<script>
setTimeout( 'location="load.php?r";', 5000 );
</script>
Код второй страницы:
<?php
$botToken = 'Токен бота';
$update = json_decode(file_get_contents("php://input"), true);
if (isset($update['callback_query'])) {
$callback_query = $update['callback_query'];
$chat_id = $callback_query['message']['chat']['id'];
$message_id = $callback_query['message']['message_id'];
$data = $callback_query['data'];
if ($data == 'button_clicked') {
header("Location: tp.php");
exit;
}
}