В статье раскрывается понятие о создании Telegram-ботов для автоматизации получения информации с информационных систем. Даются определения информационной системы и интеграции с базой данных. Делается вывод о том, что с помощью ботов можно получить информацию из собственных серверов или облаков, спроектированы запросы для получения конкретных данных и специфики базовых установок.
Автоматизация процессов вузов, как и других отраслей, идет повышенными темпами. Вначале создали маленькие части больших информационных систем, потом их интегрировали друг в друга. Разработка таких систем явилась требованием времени — например, 4–5 тысяч студентов-контрактников должны были каждый семестр стоять в очередях для детализации своих оплаченных денег по контракту. Автоматизация этих процессов улучшила бухгалтерский учет контрактников, но не помогла студентам, они, как и раньше, должны стоять в очереди. Для решения такой проблемы можно воспользоваться Telegram-мессенджером, самым популярным среди студентов.
Telegram-бот может выполнять любые функции, которые может придумать программист. С их помощью можно управлять электронным (умным) домом, регистрировать пользователей для вашей web-страницы, делать рассылку новостей, в целом они имеют неограниченные возможности.
Для создания таких ботов надо иметь Telegram-аккаунт. Напишите в поисковой строке ключевое слово manybot, активируйте бот с отправки командой Start и следуйте инструкциям. Вы создали простой статический бот, теперь его сделаем более умным.
Telegram-бот может читать данные из любых серверов. Для этого нам требуется правильно авторизоваться в нужном сервере и от него получить данные. Первым делом проанализируем структуру базы данных информационной системы, сформируем важные моменты:
– анализируем структуры базы данных информационных систем;
– формируем запросы из базы информационных систем для отображения в боте;
– экспортируем результаты запроса в формат *.csv;
– настроим домен с поддержкой протокола https;
– импортуем данные в базу данных домена;
– с помощю Telegram API сформируем ответ к запросам пользователей.
Вы должны понимать, что с точкей зрения безопасности здесь (в данной статье) невозможно описать структуры информационный системы. Поэтому представим, что в информационный системе вуза есть таблица с данными о платежах студентов-контрактников. Сформируем SQL запрос из базы данных:
SELECT talaba.FIO, talaba.id, guruhlar.guruhnomi, shartnoma.qoldiq,shartnoma.tulov, shartnoma.sana,sharnoma.izoh
FROM talaba INNER JOIN
guruhlar ON talaba.guruh = guruhlar.id INNER JOIN
shartnoma ON talaba.id = shartnoma.talabaid
Экспортируем результаты запроса в табличный формат (можно на *.CSV) и не забываем имена столбцов.
Импортируем результаты в СУБД MySQL. Данные готовы к отправке. Теперь что надо сделать, чтобы эти данные отправились к пользователям?
В процессе создания бота создается специальный токен. Токен — уникальный ключ, по которому Telegram узнает, что это именно вы. То есть это строка, по которой распознается пользователь. После получения токена с помощю Telegram API (Application Programming Interface — прикладной интерфейс программы) вы можете написать программу в следующих языках программирования:
– PHP
– Java
– Node.js
– Python
– C#
– Ruby
Коды API к этим языкам программирования можно получить c портала https://github.com/.
Используя язык программирования PHP, создадим специальный код, который отвечает на запросы пользователей Telegram-бота:
- Страница приветствия (telegrambot.php)
include 'database.php';
include 'send.php';
$db=new db();
$send=new send();
$result = json_decode(file_get_contents('php://input'),true);
$chat_id = $result['message']['from']['id'];
$text = $result['message']['text'];
if ($text=='/start')
{
$message="Добро пожаловать в систему. Пожалуйста вводите ваш студенческий код ";
$send->sendmessage($chat_id,$message);
}
else
{
$id=$text;
$message=$db->database($id);
$send->sendmessage($chat_id,$message);
}
?>
- Подключение и формирование ответа к запросу(database.php)
class db
{
function database($id){
$link=mysqli_connect(“ваши данные для подключения к базе данных”);
if ($link)
{
// информация для пользователя
return $text;
}
}
?>
- Отправка данных (send.php)
class send
{
private $token='your-tokent'; // здесь ваш токен, полученный из Telegram
function sendmessage($chat_id,$text)
{
$url = "https://api.telegram.org/bot".$this->token."/sendMessage?chat_id=".$chat_id."&text=" .urlencode($text)."&parse_mode=html";
file_get_contents($url,true);
}
}
?>
Так выглядит наш рабочий бот:
Рис. 1. Скриншот работы бота
Если вы проанализировали эти коды и имеете общие понятия по базе MySQL и PHP, то вам уже понятен смысл работы бота. Неважно, каким языком программирования вы подключаете бот, важно, как вы будете формировать запросы к базе и отображать эти данные. В заключении можно сказать, если вы знаете структуру базы данных вашей информационной системы, то легко можете создавать такие боты с полезными функциями.
Литература:
- Кузнецов М, Симдянов И. PHP 5/6. — Санкт-Петербург: БХБ-Петербург, 2010. — 1024 с.
- Шафиев, Т. Р.; Сайгатов, Р. Социальная сеть Телеграм. // Актуальные проблемы преподавания учебного заведения. — Бухара: БухГУ, 2017. — С. 32–35.