Mazkur tadqiqot ishida axborot xizmatlarini ko’rstishda telegram botlardan foydalanishning imkoniyatlari qarab chiqilgan.
Kalit so’zlar: telegram bot, PHP, ma’lumotlar bazasi, XML, JSON.
В данной статье рассмотрены возможности использования ботов Telegram при оказании информационных услуг.
Ключевые слова: telegram-бот, PHP, база данных, XML, JSON.
Takrorlanadigan monoton vazifalarni va ishlarni bajaradigan bot nafaqat insonning vaqtini va kuchini tejaydi, balki ishni yuqori tezlikda bajarish imkonini ham yaratib beradi [1]. Botlarning reaktsiyasi va harakatlarining aniqligi odamga qaraganda ancha yaxshiroq bo’lib hisoblanadi. Bugungi kunda botlar kompyuter o’yinlari, onlayn auktsionlar, reklama, elektron birja savdosi, biznes, davlat xizmatlari va boshqa ko’plagan sohalarda keng qo’llanilmoqda. Botlar inson faoliyatiga taqlid qilish uchun, chatlar ko’rinishida amalga oshiriladi. Bu kabi botlar “chat botlari” deb ataladi [2]. Bugungi kunga kelib ularning xizmatlaridan foydalanish kundan-kunga ommalashmoqda. Telegram messenjeri botlari ham shu kabi botlarning bir turi bo’lib hisoblanadi.
Telegam botlarni yaratish uchun albatda dasturlash tilidan foydalanishga to’g’ri keladi. Botdan ma’lumotlar serverga uzatilgani uchun botlarni yaratishda server taraf ishlaydigan dasturlash tillaridan foydalaniladi [3]. Shunday dasturlash tillaridan biri PHP dasturlash tili bo’lib backend dasturlashda eng keng tarqalgan til bo’lib hisoblanadi. Hozirgi vaqtda hosting provayderlarining aksariyati tomonidan PHP tili to’liq qo’llab-quvvatlanadi, bu dinamik veb-saytlarni yaratish uchun ishlatiladigan etakchi tillardan biri. Shuningdek telegram botlarni yaratishda ham ko’pincha PHP tilidan foydalaniladi. Bu maqsadlardan PHP dasturlash tilida birnechta kutubxonalar ham yaratilgan [4].
Yangi bot yaratish uchun BotFather botiga murojaat qilish talab etiladi. Botni yaratish uchun /newbot buyrug’idan foydalaniladi. BotFather bizdan ism va foydalanuvchi nomini so’raydi, so’ngra yangi botingiz uchun autentifikatsiya tokenini yaratadi. Botlarni yaratish uchun API ochiq bo’lib, shuning uchun telegramning istalgan foydalanuvchisi bot uchun Telegram akkauntini yaratishi va unga o’z operator dasturini biriktirishi mumkin. Telegram va tashqi operator dasturi (ya’ni bot) o’rtasidagi o’zaro aloqa API tomonidan taqdim etilgan usullar to’plamidan foydalangan holda http so’rovlari orqali amalga oshiriladi.
Bot yaratish uchun so’rov jo’natilganda token deb nomlangan maxsus noyob kalit yaratiladi. Yaratilgan botdan foydalanish uchun ushbu token ishlatiladi. Bunday avtorizatsiya Telegram’ga ushbu maxsus so’rov biz yaratgan botimizdan kelganini tekshirish uchun kerak bo’ladi.
Foydalanuvchi nomi qisqa ism bo’lib, eslatmalarda va t.me havolalarida ishlatiladi. Foydalanuvchi nomlari 5–32 ta belgidan iborat boʻlib, katta-kichik harflarni sezmaydi, lekin faqat lotin harflari, raqamlar va pastki chiziqni oʻz ichiga olishi mumkin.
Mazkur tadqiqot ishida biz O’zbekiston Respublikasi Markaziy bankining rasmiy veb-saytida xorijiy valyutalarninig so’mga nisbatan rasmiy kurslari haqidagi ma’lumotlarga asoslangan holda valyuta kurslarini ko’rsatib beradigan botni yaratish masalasini qarab chiqamiz. Dastlab markaziy bank web saytidan ma’lumotlarni olish talab etiladi. O’zbekiston Respublikasi Markaziy bankining rasmiy veb-saytida xorijiy valyutalarninig so’mga nisbatan rasmiy kurslarini strukturalangan XML vа JSON formatida olish va foydalanish imkoniyati mavjud. Bu imkoniyat O’zbekiston Respublikasi Markaziy bankining rasmiy veb-saytidan internet tarmog’i orqali valyutalar kurslarini sinxron (avtomatlashgan) holatda olish hamda dasturiy ta’minotlar uchun yoki o’z saytlarida valyutalar kurslarini joylashtiruvchilar uchun yaratilgan.
Valyutalar kurslari XML formatida olish uchun quyidagilarni bajarish kerak bo’ladi.
— Ma’lumotlarni xml formatida ham olish mumkin. Bu ma’lumotlar «https://cbu.uz/uz/arkhiv-kursov-valyut/xml/» havola orqali olinadi. Valyutalar kurslariga alohida valyuta va/yoki biror sana uchun so’rovlar berish uchun quyidagicha usullardan foydalanish mumkin:
— https://cbu.uz/uz/arkhiv-kursov-valyut/xml/ — parametr ko’rsatilmagan ushbu so’rov yordamida joriy sanadagi valyuta kurslari beriladi;
— https://cbu.uz/uz/arkhiv-kursov-valyut/xml/all/2018–12–11/ — ushbu so’rov yordamida «2018–12–11» sanasidagi barcha valyutalar kurslari beriladi;
— https://cbu.uz/uz/arkhiv-kursov-valyut/xml/RUB/2019–01–01/ — ushbu so’rov yordamida sana va valyuta kodini ko’rsatgan holda, «RUB» sanadagi «2019–01–01» kodli valyutaning kursi beriladi;
Ma’lumot standartlashgan XML ko’rinishida quyidagi tarkibiy tuzilishda beriladi:
—
—
—
—
—
—
—
—
—
—
—
Olingan ma’lumotlarni PHP dasturlash tili yordamida qayta ishlab telegam bot uchun foydalaniladi. Dastlab ma’lumotlarni qabul qilib olish kerak bo’ladi. Buning uchun quyidagicha kodlardan foydalanamiz:
$path = 'https://cbu.uz/ru/xml/';
$xmlFile = file_get_contents($path);
$xml = simplexml_load_string($xmlFile);
$json = json_encode($xml);
$xmlArr = json_decode($json, true);
Botimiz 4 xil valyutalarni ko’rsata oladi ularning har birini quyidagicha o’zgaruvchilarga saqlab olamiz:
$usd = $xmlArr['CcyNtry']['68']['Rate'];
$eur = $xmlArr['CcyNtry']['20']['Rate'];
$rub = $xmlArr['CcyNtry']['56']['Rate'];
$date = $xmlArr['CcyNtry']['56']['date'];
Boshqarish tugmalarini chiqarish uchun quyidagicha kodlardan foydalanamiz:
$update = json_decode(file_get_contents( 'php://input' ));
$message = $update->message;
$text = $message->text;
$chat_id = $message->chat->id;
$message_id = $message->message_id;
$button = json_encode(['resize_keyboard' => true,'keyboard' => [
[['text' => '🇺🇸 USD'], ['text' => '🇪🇺 EUR'],['text' => '🇷🇺 RUB']],
]
]);
$cancel = json_encode([
'resize_keyboard' => true,
'keyboard' => [ [['text' => '⬅ Previous']],
]]);
Bosilgan tugmaga mos ravishda valyuta kursi haqidagi ma’lumotlarni quyidagicha ko’rinishda chiqaramiz (1-rasm).
Rasm 1. Valyuta kursi haqidagi ma’lumotlarning chiqarilishi
Xulosa qilib aytganda telegram botlarni yaratish orqali axborot xizmatlarini ko’rsatish jarayoni samaradorligini oshirish va foydalanuvchilar uchun qo’shimcha qulayliklar yaratish mumkin. Mazkur tadqiqot ishini bajarish natijasida valyuta kurslari haqida ma’lumotlar beradigan telegram boti ishlab chiqildi.
Adabiyot:
- Прохоренок, Н. HTML, JavaScript, PHP и MySQL / Н. Прохоренок, В. Дронов. — 4-е изд. — Москва: ВбХ, 2015. — 766 c. — Текст: непосредственный.
- Гагарина, Л. Г. Технология разработки программного обеспечения / Л. Г. Гагарина, Е. В. Кокорева. — 2. — Москва: ФОРУМ, 2008. — 297 c. — Текст: непосредственный.
- Telegram Bot API. — Текст: электронный // telegram: [сайт]. — URL: https://core.telegram.org/bots/api (дата обращения: 09.07.2022).
- PHP Telegram Bot. — Текст: электронный // github: [сайт]. — URL: https://github.com/php-telegram-bot/core (дата обращения: 09.07.2022).
- Диалоговый телеграм бот на PHP. — Текст: электронный // Хабр: [сайт]. — URL: https://habr.com/ru/post/347482/ (дата обращения: 09.07.2022).