Вебинар 1

Материалы к занятию

Упрощенная версия чат-бота для первого занятия.

Принцип работы плагина. Как сохранить и вывести данные, полученные от бота

Пример данных получаемых плагином, когда пользователь отвечает телеграм-боту:

Array
(
    [update_id] => 809808685
    [message] => Array
        (
            [message_id] => 198
            [from] => Array
                (
                    [id] => 173542688
                    [is_bot] => 
                    [first_name] => Николай
                    [last_name] => Миронов
                    [username] => solidcreature
                    [language_code] => ru
                )

            [chat] => Array
                (
                    [id] => 173542688
                    [first_name] => Николай
                    [last_name] => Миронов
                    [username] => solidcreature
                    [type] => private
                )

            [date] => 1592314781
            [text] => Привет!
        )

)

Реализация простого бота загадывающего число от 1 до 5

Финальный код плагина
Основная функция:

function tg_main_function() {
	
	$body = file_get_contents('php://input'); 
	$data = json_decode($body, true); 
	
	$message = $data['message']['text']; 
	$chat_id = $data['message']['from']['id'];
	
	//Идентифицируем пользователя и его статус
	//Если нет участника с указанным $chat_id, то будет создан новый
	$person_id = tg_get_person_id($chat_id, $data);
	
	//Выполняем команды
	if ( ($message == '/start') or ($message == 'Начать сначала') ) {
		tg_send_greetings($chat_id);
		exit('ok');
	} elseif ( $message == '1' ) {
		tg_send($chat_id, 'Холодно!');
		exit('ok');
	} elseif ( $message == '2' ) {
		tg_send($chat_id, 'Теплее!');
		exit('ok');
	} elseif ( $message == '3' ) {
		tg_send($chat_id, 'Горячо!');
		exit('ok');
	} elseif ( $message == '4' ) {
		$text = 'Ура вы угадали';

		$rows = array();
		$rows[] = array('Начать сначала');
			
		$keyboard = array( 
			'one_time_keyboard' => false, 
			'resize_keyboard' => true, 
			'keyboard' => $rows 
		);
	
		tg_send_w_keyboard($chat_id, $text, $keyboard);
		exit('ok');
	} elseif ( $message == '5' ) {
		tg_send($chat_id, 'Горячо!');
		exit('ok');
	}
	
	
	//Если команда не распознана, выполняем данный блок
	$text = 'Ой, что-то пошло не так. Попробуйте прислать 1, 2, 3, 4 или 5';		
	tg_send($chat_id, $text);	

	//В конце возвращаем "ok", чтобы сообщить Телеграму, что запрос обработан
	exit('ok'); 
} 

Функция приветствия:

//Отправить приветствие и вывести базовые команды
function tg_send_greetings($chat_id) {
	
	$text = 'Привет! Я загадал число от 1 до 5. Угадай какое?';

	$rows = array();
	$rows[] = array('1','2','3','4','5');
			
	$keyboard = array(
		'one_time_keyboard' => false,
		'resize_keyboard' => true,
	  	'keyboard' => $rows
	);
	
	tg_send_w_keyboard($chat_id, $text, $keyboard);
}

Полезная часть вебинара

(На основе текущей версии плагина на гитхабе)