Всем привет. У меня такая загвоздка. Нужно получить ответ от пользователя и сохранить его в базе данных. Загвоздка в том, что я не понимаю как перехватить ответ. Я создал вот такой класс.
<?php
class BotMain
{
protected $access_token;
protected $api_link;
public $IncInfo = array();
public $CallBack = array();
function __construct($set = array())
{
$this -> access_token = $set['access_token'];
$this -> api_link = $set['api_link'];
$this -> status = 0;
}
/*
all incoming messages from telegram
*/
function SetIncInfo()
{
$output = json_decode(file_get_contents('php://input'), TRUE);
$this -> IncInfo ['chat_id'] = $output['message']['chat']['id'];
$this -> IncInfo ['message'] = $output['message']['text'];
$this -> IncInfo ['first_name'] = $output['message']['chat']['first_name'];
$this -> IncInfo ['last_name'] = $output['message']['chat']['last_name'];
$this -> IncInfo ['username'] = $output['message']['chat']['username'];
}
/*
all incoming answers form telegram inline_keyboard
*/
function SetCallBack()
{
$this -> CallBack ['callback_query'] = $output['callback_query'];
$this -> CallBack ['data'] = $callback_query['data'];
//$this -> CallBack ['message_id'] = ['callback_query']['message']['message_id'];
$this -> CallBack ['chat_id_callback'] = $callback_query['message']['chat']['id'];
}
/*
sends message according to chat_id + may include reply_markup
*/
function SendMessage ($chat_id, $message, $replyMarkup)
{
file_get_contents($this -> api_link . '/sendMessage?chat_id=' . $chat_id . '&text=' . urlencode($message) . '&reply_markup=' . $replyMarkup);
}
}
?>
Сама логика бота обрабатывается в другом файле. WebHook настроен на него, соответственно.
<?php
require_once 'bot.settings.php'; //token, url
require_once 'BotMain.class.php'; //main class of the bot
$bot = new BotMain($set);
$bot -> SetIncInfo(); //get incoming message
// $bot -> SetCallBack(); //get reply from inline keyboard
switch($bot->IncInfo['message']) {
case '/start':
$bot -> SendMessage($bot -> IncInfo['chat_id'], "You are wellcome! Please enter your name: ");
/*
???
*/
break;
}
?>
Допустим, если в класс прописать переменную status, то все равно не получится выхватить ответ, потому что скрипт завершит свое выполнение, и ответ будет воспринят заново и создан новый экземпляр класса.
Файлы создавать не вариант. Как тогда можно решить данную проблему?
P.S. Я новичок в программировании, если что не так, дайте мне знать, пожалуйста.