Bu gün doğaçlama materiallarından toplayacağıq https://api.telegram.org/
. Yaxşı, etməyəcəyik - yox, yox. Həqiqətən, çantamızda sözdə var. webhooks - onların köməyi ilə biz konkret ünvana sorğular etmirik, sadəcə sorğumuzu bizə istənilən sorğuya cavab olaraq göndəririk. Yəni Odessadakı kimi - suala sualla cavab veririk. Buna görə də Telegram API kodumuzda görünməyəcək.
İmtinaBu yazıda qeyd olunan hər hansı dövlət təşkilatının adı uydurmadır, real təşkilatların adları ilə mümkün üst-üstə düşmələri isə təsadüfi xarakter daşıyır.
Beləliklə, bizi ağıllı düşüncələrlə təmin edəcək bir bot hazırlayacağıq. Tam şəkildəki kimi:
Bunu hərəkətdə sınaya bilərsiniz - adı budur: @SmartThoughtsBot. Düyməyə diqqət yetirin "Alisanın bacarığı"? Bunun səbəbi, botun eyniadlı üçün bir növ "yoldaş" olmasıdır Alisanın bacarığı, yəni. kimi eyni funksiyaları yerinə yetirir Alisanın bacarığı və bəlkə də bir-birlərini reklam edərək dinc yanaşı yaşaya bilərlər. Necə yaratmaq haqqında Ağıllı düşüncə bacarığı məqalədə təsvir edilmişdir
Bot yaradılması
İstərdim ki, bu dərslik hər kəs üçün faydalı olsun, o cümlədən. və başlanğıc "bot qurucuları". Buna görə də, bu bölmədə ümumiyyətlə necə yaradılacağını bir qədər ətraflı təsvir edəcəyəm Teleqrambotlar. Bu məlumata ehtiyacı olmayanlar üçün növbəti bölmələrə keçin.
Tətbiqi açın Teleqaram, biz bütün botların atası deyirik (onlarda insanlar kimi hər şey var) - @BotAta - və başlamaq üçün ona nə edə biləcəyimiz barədə yaddaşımızı yeniləmək üçün / help əmrini verəcəyik. İndi komanda ilə maraqlanırıq / newbot.
Burada təsvir edilən bot artıq yaradıldığı üçün nümayiş məqsədilə qısa müddətə başqa bir bot yaradacam (sonra onu siləcəm). Mən ona zəng edəcəm DemoHabrBot. adlar (istifadəçi adı) bütün teleqram botları sözlə bitməlidir bot, məsələn: MyCoolBot və ya mənim_sərin_botum Bu botlar üçündür. Ancaq əvvəlcə bota bir ad verin (ad) insanlar üçündür. Ad istənilən dildə ola bilər, boşluqlar ehtiva edir, sözlə bitməməlidir bot, və hətta unikal olmaq məcburiyyətində deyil. Bu nümunədə mən bu botu çağırdım Demo Habr.
İndi bot üçün ad seçin (istifadəçi adı, botlar üçün). Gəlin onu çağıraq DemoHabrBot. Botun adı ilə bağlı hər şey (ad) adı ilə heç bir əlaqəsi yoxdur - istifadəçi adı (və ya tətbiq edilir, lakin tam əksi). Unikal bot adını uğurla yaratdıqdan sonra ekran görüntüsündə qırmızı ox ilə göstərilən nişanı kopyalayıb saxlamalıyıq (ən ciddi şəkildə!). Onun köməyi ilə daha sonra çıxanları quraşdıracağıq Teleqram'bizim üçün bir webhook Yandex funksiyası.
İndi bütün botların atasına əmr verəcəyik: /mybotsvə o, bizə yaratdığımız bütün botların siyahısını göstərəcək. Təzə bişmiş botu hələlik tək buraxaq Demo Habr (botların necə yaradılacağını göstərmək üçün yaradılmışdır, lakin biz bu gün onu digər nümayiş məqsədləri üçün istifadə edəcəyik) və botu nəzərdən keçirin. Ağıllı Düşüncələr (@SmartThoughtsBot). Botlar siyahısında adı olan düyməni basın.
Bu, botu qura biləcəyimiz yerdir. Düyməni basmaq Düzəliş et ... bu və ya digər variantın redaktəsinə keçəcəyik. Məsələn, düyməni basmaqla Adı redaktə edin botun adını dəyişə bilərik, yerinə deyə bilərik Ağıllı Düşüncələr, yazın dəli fikirlər. Botpic - bu botun avatarıdır, ən azı olmalıdır 150 x 150 px. təsvir sualına cavab olaraq bot ilk dəfə işə salındıqda istifadəçinin gördüyü qısa təsvirdir: Bu bot nə edə bilər? haqqında - bota keçid ilə ötürülən daha qısa təsvir (https://t.me/SmartThoughtsBot
) və ya bu barədə məlumatı nəzərdən keçirərkən.
Bizə sadəcə əmrləri təyin etməliyik. Bunu etmək üçün düyməni basın Komandaları redaktə edin. İstifadəçi təcrübələrini standartlaşdırmaq Teleqram həmişə iki əmrdən istifadə etməyi tövsiyə edir: /başlamaq и / kömək, və botun parametrlərə ehtiyacı varsa, əlavə /settings əmri. Bizim bot top kimi sadədir, ona görə də hələ heç bir parametrə ehtiyac yoxdur. İlk iki əmri yazırıq, sonra onları kodda işləyəcəyik. İndi istifadəçi giriş sahəsinə slash (slash simvolu: /) daxil edərsə, onların sürətli seçilməsi üçün əmrlərin siyahısı görünəcək. Hər şey şəkildəki kimidir: solda - bot-ata vasitəsilə əmrlər təyin edirik; sağda, bu əmrlər botumuzdakı istifadəçilər üçün artıq mövcuddur.
Yandex funksiyası
İndi botumuz yaradıldı, gedək Yandex.Cloudbot kodumuzu icra edəcək funksiya yaratmaq üçün. Əgər işləməmisinizsə Yandex.Cloud materialı oxuyun
Beləliklə, konsolda Yandex.Clouds sol naviqasiya menyusunda elementi seçin Bulud funksiyaları, və sonra düyməni basın Funksiya yaradın. Biz ona bir ad veririk və özümüz üçün - qısa təsvir.
Düyməni basdıqdan sonra yaratmaq və bir neçə saniyədən sonra yeni funksiya bütün funksiyaların siyahısında görünəcək. Onun adına klikləyin - bu, bizi səhifəyə aparacaq Review bizim funksiyamız. Burada aktivləşdirməlisinizOn) keçid ictimai funksiyaonu xaricdən əlçatan etmək (üçün Yandex.Clouds) dünyanın və sahələrin dəyəri Zəng etmək üçün keçid и ID - bunu özünüzdən və Telegramdan başqa hamıdan gizli saxlayın ki, müxtəlif fırıldaqçılar funksiyanıza zəng vura bilməsinlər.
İndi sol menyudan istifadə edərək gedin Redaktoru funksiyaları. Gəlin özümüzü bir anlıq kənara qoyaq Ağıllı Düşüncələr, və botumuzun işini yoxlamaq üçün minimal şablon funksiyası yaradın... Lakin bu kontekstdə bu funksiya bizim botumuzdur... Bir sözlə, indi və elə burada biz “güzgü” verəcək ən sadə botu edəcəyik ( yəni geri göndərmək ) istifadəçi sorğuları. Bu şablondan hər zaman yeni teleqram botları yaradan zaman istifadə oluna bilər ki, onunla əlaqə saxlasın Telegram'om yaxşı işləyir. basın Fayl yaradın, çağırın indeks.js, və onlayn Kod redaktoru aşağıdakı kodu bu fayla yapışdırın:
module.exports.bot = async (event) => {
const body = JSON.parse(event.body);
const msg = {
'method': 'sendMessage',
'chat_id': body.message.chat.id,
'text': body.message.text
};
return {
'statusCode': 200,
'headers': {
'Content-Type': 'application/json'
},
'body': JSON.stringify(msg),
'isBase64Encoded': false
};
};
Yandex.Cloud konsolunda o, belə görünməlidir:
Aşağıda qeyd edirik giriş nöqtəsi - indeks.botHara indeks bu fayl adıdır (indeks.js), və bot - funksiya adı (modul.exports.bot). Bütün digər sahələri "olduğu kimi" buraxın və yuxarı sağ küncdə düyməni basın Versiya yaradın. Bir neçə saniyədən sonra funksiyanın bu versiyası yaradılacaq. Testdən qısa müddət sonra webhook, biz yeni versiya yaradacağıq - Ağıllı Düşüncələr.
Obyekt Saxlama
İndi biz qurduq Yandex funksiyasıkonsolda olarkən gedək Yandex.Clouds, sözdə yaradın. vedrə (vedrə, yəni. rus dilində vedrə, heç bir şəkildə buket deyil) botumuzda istifadə ediləcək şəkil fayllarını saxlamaq üçün Ağıllı Düşüncələr. Sol naviqasiya menyusundan seçin Obyekt Anbarı, Düyməyə bas Kova yaradın, ona bir ad verin, məsələn, img-kovavə ən əsası, Obyektlərə girişi oxuyun ictimailəşdirin - əks halda Telegram şəkillərimizi görməyəcək. Bütün digər sahələr dəyişməz olaraq qalır. Düyməni basırıq Kova yaradın.
Bundan sonra, bütün vedrələrin siyahısı belə görünə bilər (əgər bu sizin yeganə çömçənizdirsə):
İndi vedrənin adını tıklamağı və müxtəlif tətbiqlər üçün şəkillərin saxlanmasını təşkil etmək üçün onun içərisində bir qovluq yaratmağı təklif edirəm. Məsələn, teleqram botu üçün Ağıllı Düşüncələr adlı bir qovluq yaratdım tg-bot-ağıllı-düşüncələr (Heç nə, mən bu şifrəni başa düşəcəyəm). Bir də yaradın.
İndi qovluğun adını klikləyə, ora daxil ola və faylları yükləyə bilərsiniz:
Və fayl adını tıklayaraq - onu əldə edin URL botumuzda və ümumiyyətlə - hər yerdə istifadə üçün (lakin bunu dərc etməyin URL lazımsız, çünki trafik obyekt saxlama ittiham olunur).
Budur, əslində, hamısı budur obyekt saxlama. İndi orada faylları yükləmək təklifini görəndə nə edəcəyinizi biləcəksiniz.
Veb kanca
İndi quraşdıracağıq webhook — yəni. bot serverdən yeniləmə (məsələn, istifadəçidən mesaj) aldıqda Teleqram bizim daxil Yandex funksiyası sorğu göndəriləcəkxahiş) verilənlərlə. Budur, sadəcə olaraq brauzerin ünvan sahəsinə yapışdıra və səhifəni təzələyə bilərsiniz (bunu yalnız bir dəfə etmək lazımdır): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Sadəcə dəyişdirin {bot_token} botumuzu yaradarkən ata botdan aldığımız tokenə və {webhook_url} - açıq URL bizim Yandex funksiyaları. Bir dəqiqə gözlə! Amma RossKom Senzura Rusiya Federasiyasındakı provayderlərə ünvana xidmət göstərməyi qadağan edir https://api.telegram.org
. Bəli doğrudur. Ancaq bir şey düşünə bilərsiniz. Axı, məsələn, Ukraynada, İsraildə və ya Kanadada nənənizdən bu barədə soruşa bilərsiniz - orada "Rusiya senzurası" yoxdur və insanların onsuz necə yaşadığını yalnız Allah bilir. Nəticədə, webhook quraşdırarkən sorğu-cavab belə görünməlidir:
Test. Güzgü olmalıdır.
Bu doğrudur. Təbriklərimiz - indi Yandex funksiyası çevrilmişdir Teleqram-bot!
Ağıllı Düşüncələr
İndi biz Ağıllı Düşüncələr edirik. Kod açıqdır və yatır
Layihəni klonlayın və asılılıqları quraşdırın:
git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i
Faylda lazım olan dəyişiklikləri edin indeks.js (isteğe bağlı; heç nəyi dəyişə bilməzsiniz). Yaradın zip-arxiv, fayl ilə indeks.js və qovluq düyün_ modulları içəridə, məsələn, çağırılır smart.zip.
İndi konsolumuza keçin Yandex funksiyaları, nişanı seçin ZIP arxivi, Düyməyə bas Fayl seçinvə arxivimizi yükləyin smart.zip. Nəhayət, yuxarı sağ küncdə düyməni basın Versiya yaradın.
Bir neçə saniyədən sonra funksiya yeniləndikdə biz botu yenidən sınaqdan keçirəcəyik. İndi o, artıq "güzgülər" etmir, lakin ağıllı fikirlər çatdırır!
Bu gün üçün hamısı budur. Sonrakı digər məqalələr. Bunu oxumaq istəyirsinizsə, yeni məqalələrin bildirişlərinə abunə olun. Buradan və ya abunə ola bilərsiniz Teleqramkanal
References
donatı
Mənbə: www.habr.com