Задать вопрос
@coder_hueder

Почему не работает Location в связке с Inline button?

Написал две страницы. На первой код, отвечающий за создание клавиатуры, на второй обработчик. Проблема в том, что при нажатии 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;
    }
}
  • Вопрос задан
  • 175 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
А теперь контрольный вопрос: эти PHP файлы исполняются где? В браузере? На сервере? А в браузере тогда что исполняется, при нажатии клавиши на клавиатуре? Аааа, JavaScript исполняется? А как этот JavaScript обращается ко второму файлу? И почему JavaScript должен выполнять переход "Location: tp.php", если он не обязан его выполнять?
Ответ написан
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы