Telegram api” xizmati



Yüklə 0,94 Mb.
səhifə3/4
tarix10.12.2022
ölçüsü0,94 Mb.
#73603
1   2   3   4
eeer

Botni ishlatish namunasi

Ob’ektlardan foydalanishga qo’shimcha ravishda, API sizga Telegram kanaliga va shaxsiy yozishmalarga fayllar, xabarlar, stikerlar yuborish imkonini beruvchi yana bir funktsiyalar to’plamiga ega.


Telegramda robot yaratish uchun siz @Botfather xizmatidan foydalanishingiz kerak.
Jarayon quyidagi ketma-ketlikka ega.

  • Yuqoridagi dasturga o’ting va yozing / newbot.

  • Bot va foydalanuvchi nomini kiriting. Birinchisi “bot” prefiksi bilan tugashi kerak.

  • Tokenni olgandan so’ng siz avtorizatsiyaga o’tishingiz mumkin.

  • Yaratilgan robotni ishga tushirish uchun / start tugmasini bosing.

Botning ishlashini misolini ko’rib chiqing. Robotni sinashning oson usuli – manzilni ko’rish brauzeridan foydalanish. Buning uchun yordamchining veb-versiyasiga o’ting va brauzerda quyidagi buyruqni kiriting:

Qalqib chiquvchi oynada quyidagilar aks etadi:

Kodda ishlatiladigan suhbat qiymatlari: {“id – bu suhbat identifikatorlari.
Keyin buyuramiz:

Brauzer quyidagi qatorni namoyish etadi:

Endi tabriklash messenjer chatida ko’rsatiladi.
Ko’rib turganingizdek, noldan Telegram bot API-ni yaratish oson jarayon. Uni amalga oshirish uchun minimal bilim va istak talab etiladi. Agar maqolani o’qib chiqqandan keyin sizda hali ham savollaringiz bo’lsa, qo’llanmani sotib olishni yoki Internetda qiziqqan ma’lumotlarni topishni maslahat beramiz.
Bot uchun dasturlashni boshlaymiz.
Telegram bot dasturiy qismini ishga tushurishimiz uchun bizga web hosting + ssl sertefekat bilan domen kerak boladi.
Demak dasturlashni boshladik:
Saytimizda istalgan nom bilan PHP fayl yaratamiz, Masalan «chat_bot.php» va fayl ichida bot dasturini boshlaymiz.
BotFather taqdim etgan, bot tokeni yani kaliti uchun o’zgarmas constant yaratib olamiz. Constant nomini «API_KEY» deb nomladim.
define('API_KEY', '1016572094:AAGrwwZhjmMHTUaC4VAHgforR3QlFkSbF8s');
Botni boshqaradigan insonning telegram id raqami va Ism Familyasini yoki kompaniya nomini o’zgaruvchiga saqlaymiz. Telegram id raqamini olish uchun ushbu botga «/start» buyrug’uni bering. Botga o’tish: http://t.me/infomiruz_idbot
$Manager = "150105698";
$compane = "infomir.uz";
bot dasturi barcha amallarini kerakli shaklda Telegram Bot API ga yuboradigan asosiy funksiyani yozamiz
function bot($method, $datas = []){
$url = "https://api.telegram.org/bot".API_KEY."/" . $method;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $datas);
$res = curl_exec($ch);
curl_close($ch);
if (!curl_error($ch)) return json_decode($res);
};
Foydalanuvchilarning Ism Familyasi yoki Yozgan murojati tarkibida uchrashi mumkin bo’lgan kodga a’loqador belgilardan himoya funksiyasini yozamiz
function html($text){
return str_replace(['<','>'],['<','>'],$text);
};
Telegram Bot API dan kelgan JSON formatdagi ma’lumotni «json_decode» funksiyasi yordamida «stdClass Object» shaklida qabul qilamiz
$update = json_decode(file_get_contents('php://input'));
Telegram Bot API bizga yuborayotgan javobni ko’rishimiz uchun hozircha ushbu kodni qo’shib qo’yamiz, ushbu kod bot ishga tushganda javobni yangi «log.txt» faylga yozib qo’yadi.
//test log
file_put_contents("log.txt",file_get_contents('php://input'));
Botni ishga tushurish uchun Maxsus «setWebhook» funksiayasi orqali Telegram API ga botimiz kodlari qaysi manzilda joylashganligi haqida habar berishimiz lozim. Buning uchun avval Webhook murojat urlini tayyorlaymiz:
https://api.telegram.org/botBuyerda Token/setWebHook?url=php fayl manzili
Mening botim uchun mana bunday shaklda:
https://api.telegram.org/bot1151828985:AAFu_2fo/setWebHook?url=https://infomir.uz/chat_bot.php
Ushbu url so’rovni browserda ishga tushuramiz va agar hammasini to’g’ri qilgan bo’lsangiz javobi mana bunday ko’rinishda boladi:
{"ok":true,"result":true,"description":"Webhook was set"}
Botimiz ishga tushdi ammo hozircha bizga hech nima qaytarmaydi, Chunki dastur davomini yozishimiz lozim.

Ammo nima yozishni bilmayman deysizmi ? Ahir bizda endi log fayli bor shuni ochib ko’ramiz:
{
"update_id":445311974,
"message":{
"message_id":39,
"from":
{
"id":767265901,"is_bot":false,
"first_name":"SaidAbbos",
"last_name":"Khudoykulov",
"username":"Mujik_s_Borodoy",
"language_code":"ru"
},
"chat":
{
"id":767265901,
"first_name":"SaidAbbos",
"last_name":"Khudoykulov",
"username":"Mujik_s_Borodoy",
"type":"private"
},
"date":1591090681,
"text":"/start",
"entities":[{"offset":0,"length":6,"type":"bot_command"}]}
}
stdClass tarkibida kelgan ma’lumotlar ichidan o’zimizga kerakli ma’lumotlarni o’zgaruvchilarga himoya funksiyamiz orqali tozalab saqlaymiz
// message variables
$message = $update->message;
$text = html($message->text);
$chat_id = $message->chat->id;
$from_id = $message->from->id;
$message_id = $message->message_id;
$first_name = $message->from->first_name;
$last_name = $message->from->last_name;
$full_name = html($first_name . " " . $last_name);

// replymessage


$reply_to_message = $message->reply_to_message;
$reply_chat_id = $message->reply_to_message->forward_from->id;
$reply_text = $message->text;
Demak dastur davomida shunday yozamiz:
// Agar yozgan odam $Manager bo'lmasa ushbu kod qismiga kiramiz
if ($chat_id != $Manager) {
// Agar yozilgan habar /start bolsa, yani yangi foydalanuvchi
// botni ishga tushursa ushbu kod bajariladi
if ($text == "/start") {
// Foydalanuvchiga Manager yoki kompaniya nomidan salom yo'llaymiz.
$reply = "Assalom Alaykum
Yüklə 0,94 Mb.

Dostları ilə paylaş:
1   2   3   4




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin