Встроенная клавиатура. Я сделал кнопку, но что делать с callback_data?

Нужна помощь с встроенной клавиатурой. Я сделал кнопку, но что делать с обратным вызовом? Я понимаю, мне нужно как-то получить callback_data и выдать новое сообщение.

     <?php
$access_token = 'xxx';
$api = 'https://api.telegram.org/bot' . $access_token;
$output = json_decode(file_get_contents('php://input'), TRUE);
$chat_id = $output['message']['chat']['id'];
$first_name = $output['message']['chat']['first_name'];
$message = $output['message']['text'];
$callback_query = $output['callback_query'];
$data = $callback_query['data'];
$message_id = ['callback_query']['message']['message_id'];
switch($message) {
case '/test':
$inline_button1 = array("text"=>"Google url","url"=>"http://google.com");
$inline_button2 = array("text"=>"work plz","callback_data"=>'/plz');
$inline_keyboard = [[$inline_button1,$inline_button2]];
$keyboard=array("inline_keyboard"=>$inline_keyboard);
$replyMarkup = json_encode($keyboard);
sendMessage($chat_id, "ok", $replyMarkup);
break;
}
switch($data){
case '/plz':
sendMessage($chat_id, "plz");
break;
}
function sendMessage($chat_id, $message, $replyMarkup) {
file_get_contents($GLOBALS['api'] . '/sendMessage?chat_id=' . $chat_id . '&text=' . urlencode($message) . '&reply_markup=' . $replyMarkup);
}

1

Решение

Если кто-то нажмет кнопку, вы получите callback_query объект вместо объекта сообщения. Сам запрос callback_query содержит изначально отправленное сообщение.

$output = json_decode(file_get_contents('php://input'), TRUE);
$callback_query = $output["callback_query"]
$data = $callback_query["data"] // in your case $data is "/plz"
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]