@newaitix

Как обработать нажатие кнопки telegram?

define('TOKEN','...');
$data=file_get_contents('php://input');
$data=json_decode($data,true);
if(!empty($data['message']['text'])){
	$text=$data['message']['text'];
	$keyboard_step_1=array(
		array(
			array(
				'text'=>'next',
				'callback_data'=>'{"action":"go_step_2","count":0,"text":"next"}'
			),
			array(
				'text'=>'link',
				'url'=>'https://google.com'
			)
		)
	);
	$response=array(
		'chat_id'=>$data['message']['chat']['id'],
		'text'=>$text,
		'reply_markup'=>json_encode(
			array(
				'inline_keyboard'=>$keyboard_step_1
			)
		)
	);
	$ch = curl_init('https://api.telegram.org/bot'.TOKEN.'/sendMessage');  
	curl_setopt($ch, CURLOPT_POST, 1);  
	curl_setopt($ch, CURLOPT_POSTFIELDS, $response);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_HEADER, false);
	curl_exec($ch);
	curl_close($ch);
}

Сделал простого эхо бота, пытаюсь добавить кнопки.
Как обработать нажатие кнопки next?
Что происходит при нажатии на кнопку next?
  • Вопрос задан
  • 216 просмотров
Пригласить эксперта
Ответы на вопрос 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Ответы на ваши вопросы есть в документации. Рекомендую к вдумчивому прочтению.
https://core.telegram.org/bots/api#getting-updates
https://core.telegram.org/bots/api#callbackquery

При нажатии на кнопку объект вида CallbackQuery появится в списке который возвращает метод /getUpdates
Если был настроен webhook, то на указанный в webhook url будет отправлен POST-запрос содержащий данные объекта CallbackQuery в формате JSON.

Обрабатываете нажатие кнопки исходя из своих предпочтений и требуемой логики. В простейшем случае - увидели нужное событие - отреагировали (отправили сообщение).
Примеры кода на PHP - https://core.telegram.org/bots/samples#php
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы