Yandex.Cloud-da Telegram botunun qurulması

Yandex.Cloud-da Telegram botunun qurulması

Bu gün doğaçlama materiallarından toplayacağıq Yandex.Cloud Telegram bot istifadə edərək Yandex Bulud funksiyaları (Və ya Yandex funksiyaları qısalıq üçün) və Yandex Obyekt Yaddaşı (Və ya Obyekt Saxlama - aydınlıq üçün). Kod aktiv olacaq Node.js. Ancaq bir qəribə hal var - müəyyən bir təşkilat çağırdı, deyək ki, RossKom Senzura (Rusiya Federasiyası Konstitusiyasının 29-cu maddəsi ilə senzura qadağandır), Rusiyadakı İnternet provayderlərinə sorğuların göndərilməsinə icazə vermir. Telegram API ünvanı: 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:

Yandex.Cloud-da Telegram botunun qurulması

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 Alice bacarıq əldə edir. İndi (yuxarıdakı məqalə dərc edildikdən sonra bəzi dəyişikliklər etdikdən sonra) bir smartfonda bu bacarıq bu kimi bir şey görünəcək:

Yandex.Cloud-da Telegram botunun qurulması

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.

Yandex.Cloud-da Telegram botunun qurulması

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.

Yandex.Cloud-da Telegram botunun qurulması

İ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ı.

Yandex.Cloud-da Telegram botunun qurulması

İ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.

Yandex.Cloud-da Telegram botunun qurulması

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.

Yandex.Cloud-da Telegram botunun qurulması

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.Cloud-da Telegram botunun qurulması

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 Alisa Bitrix ölkəsində, daha sonra - Yandex funksiyaları poçt göndərir. Demək olar ki, əminəm ki, bu iki nisbətən kiçik məqalə mövzu haqqında əsas anlayışa sahib olmaq üçün kifayət edəcək.

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.

Yandex.Cloud-da Telegram botunun qurulması

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.

Yandex.Cloud-da Telegram botunun qurulması

İ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:

Yandex.Cloud-da Telegram botunun qurulması

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.

Yandex.Cloud-da Telegram botunun qurulması

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.

Yandex.Cloud-da Telegram botunun qurulması

Bundan sonra, bütün vedrələrin siyahısı belə görünə bilər (əgər bu sizin yeganə çömçənizdirsə):

Yandex.Cloud-da Telegram botunun qurulması

İ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.

Yandex.Cloud-da Telegram botunun qurulması

İndi qovluğun adını klikləyə, ora daxil ola və faylları yükləyə bilərsiniz:

Yandex.Cloud-da Telegram botunun qurulması

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).

Yandex.Cloud-da Telegram botunun qurulması

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:

Yandex.Cloud-da Telegram botunun qurulması

Test. Güzgü olmalıdır.

Yandex.Cloud-da Telegram botunun qurulması

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 Github. Olduqca yaxşı şərh olunub və cəmi yüz sətirdən ibarətdir. Onu opera diva librettosu kimi oxuyun!

Yandex.Cloud-da Telegram botunun qurulması

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.

Yandex.Cloud-da Telegram botunun qurulması

İ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.

Yandex.Cloud-da Telegram botunun qurulması

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!

Yandex.Cloud-da Telegram botunun qurulması

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 İT Təlimatı ZakharVə ya Twitter @mikezharov.

References

GitHub-da kod
Yandex Bulud funksiyaları
Yandex Obyekt Yaddaşı
Botlar: Tərtibatçılar üçün təqdimat
Telegram Bot API

donatı

Yandex.Cloud-da Telegram botunun qurulması

Mənbə: www.habr.com

Добавить комментарий