@pixal

Почему Telegram бот на php не реагирует на нажатие инлайн кнопки?

сам код
$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'];
$chat_id_in = $callback_query['message']['chat']['id'];

function sendMessage($chat_id, $message, $keyboard) {
  file_get_contents($GLOBALS['api'] . '/sendMessage?chat_id=' . $chat_id . '&text=' . urlencode($message). '&reply_markup='. json_encode($keyboard) );

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 = $keyboard; 

	sendMessage($chat_id, "Добро пожаловать в Home Net!", $replyMarkup);
	break;

	}
switch($data){	
	case "/plz":
	sendMessage($chat_id_in, "plz");
	break;
}


сама кнопка появляется, а событие на ней не срабатывает. Подскажите пожалуйста в чем загвоздка?
  • Вопрос задан
  • 879 просмотров
Пригласить эксперта
Ответы на вопрос 1
@nllm
Скорее всего скрипт падает с ошибкой.
При callback-запросе нет таких полей: $output['message']

Сначала смотрите какой тип запроса пришел (просто сообщение или callback), а потом переменные определяйте.
Еще не видно что выше по коду. Ну и debug никто не отменял.
Смотрим, что пришло - логируем. Расставляем логирование на каждый блок. Найдете где падает.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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