Paghimo ug Telegram bot sa Yandex.Cloud

Paghimo ug Telegram bot sa Yandex.Cloud

Karon, gikan sa mga improvised nga materyales, kami magkolekta Yandex.Cloud Telegram bot gamit Yandex Cloud Functions (o Yandex function alang sa mubo) ug Yandex Object Pagtipig (o Pagtipig sa butang - para sa katin-awan). Ang kodigo i-on Node.js. Bisan pa, adunay usa ka makapadasig nga kahimtang - usa ka piho nga organisasyon nga gitawag, ingnon ta, RossKomCensorship (Ang censorship gidili sa artikulo 29 sa Konstitusyon sa Russian Federation), wala magtugot sa Internet providers sa Russia sa pagbalhin sa mga hangyo ngadto sa Telegram API sa adres: https://api.telegram.org/. Aw, dili ta - dili, dili. Sa tinuod lang, sa among bag naay gitawag. mga webhook - uban sa ilang tabang, dili kami mohimo og mga hangyo sa usa ka piho nga adres, apan ipadala lamang ang among hangyo isip tubag sa bisan unsang hangyo kanamo. Nga mao, sama sa Odessa - kita motubag sa usa ka pangutana uban sa usa ka pangutana. Mao nga Telegram API dili makita sa among code.

DisclaimerAng mga ngalan sa bisan unsang mga organisasyon sa estado nga gihisgutan niini nga artikulo dili tinumotumo, ug ang posibleng mga sulagma sa mga ngalan sa tinuod nga kinabuhi nga mga organisasyon kay sulagma.

Mao nga, maghimo kami usa ka bot nga maghatag kanamo sa mga maayong panghunahuna. Sama ra sa litrato:

Paghimo ug Telegram bot sa Yandex.Cloud

Mahimo nimong sulayan kini sa aksyon - ania ang ngalan: @SmartThoughtsBot. Tan-awa ang buton "Kahanas ni Alice"? Kini tungod kay ang bot usa ka matang sa "kauban" alang sa eponymous Ang kahanas ni Alice, i.e. kini naghimo sa sama nga mga gimbuhaton sama sa Ang kahanas ni Alice ug, tingali, nga sila mahimong mag-uban nga malinawon nga nag-anunsyo sa usag usa. Mahitungod sa unsaon paghimo Kahanas sa Smart Thought gihulagway sa artikulo Nakuha ni Alice ang kahanas. Karon (pagkahuman sa paghimo sa pipila ka mga pagbag-o pagkahuman sa pagmantala sa artikulo sa ibabaw) sa usa ka smartphone kini kahanas tan-awon sama niini:

Paghimo ug Telegram bot sa Yandex.Cloud

Paghimo og bot

Gusto ko nga kini nga panudlo mahimong mapuslanon sa tanan, lakip. ug beginner "bot builders". Busa, sa niini nga seksyon akong ihulagway sa pipila ka detalye kon sa unsang paagi sa paghimo sa kinatibuk-an sa telegramamga bot. Alang niadtong wala magkinahanglan niini nga impormasyon, padayon sa sunod nga mga seksyon.

Ablihi ang aplikasyon Telegaram, gitawag namon ang amahan sa tanan nga mga bot (naa sila tanan sama sa mga tawo) - @BotFather - ug sa pagsugod, ihatag namo kaniya ang / tabang nga sugo aron mabag-o ang among panumduman kung unsa ang among mahimo. Karon kami interesado sa team / newbot.

Paghimo ug Telegram bot sa Yandex.Cloud

Tungod kay ang bot nga gihulagway dinhi nahimo na, alang sa mga katuyoan sa pagpakita maghimo ako og laing bot sa mubo nga panahon (dayon akong papason). Tawgon ko siya DemoHabrBot. Ngalan (username) ang tanang telegram bots kinahanglang tapuson sa usa ka pulong botsama pananglit: MyCoolBot o my_cool_bot Kini alang sa mga bot. Apan una, hatagi ang bot og ngalan (ngalan) para sa mga tawo. Ang ngalan mahimong sa bisan unsang pinulongan, adunay mga espasyo, dili kinahanglan nga tapuson sa usa ka pulong bot, ug dili gani kinahanglan nga talagsaon. Niini nga pananglitan, gitawag nako kini nga bot Demo Habr.

Paghimo ug Telegram bot sa Yandex.Cloud

Karon pagpili og ngalan para sa bot (username, ang para sa mga bot). Tawgon nato ni DemoHabrBot. Ang tanan nga may kalabutan sa ngalan sa bot (ngalan) wala'y kalabutan sa iyang ngalan - username (o magamit, apan tukma nga sukwahi). Human sa malampuson nga paghimo sa usa ka talagsaon nga ngalan sa bot, kinahanglan namon nga kopyahon ug i-save (sa labing higpit nga pagsalig!) Ang timaan nga gipakita sa screenshot nga adunay pula nga pana. Uban sa tabang niini, atong i-install sa ulahi ang outgoing telegrama'usa ka webhook sa among Yandex function.

Paghimo ug Telegram bot sa Yandex.Cloud

Ug karon ihatag namo ang sugo ngadto sa amahan sa tanang bot: /mybotsug kini magpakita kanamo sa usa ka lista sa tanan nga mga bot nga among gibuhat. Pabay-an naton ang bag-o nga luto nga bot sa karon Demo Habr (gibuhat kini aron ipakita kung giunsa paghimo ang mga bot, apan gamiton namon kini karon alang sa ubang mga katuyoan sa demonstrasyon), ug hunahunaa ang bot Maalamon nga mga Hunahuna (@SmartThoughtsBot). I-klik ang buton nga adunay ngalan niini sa lista sa mga bot.

Paghimo ug Telegram bot sa Yandex.Cloud

Dinhi nato ma-set up ang atong bot. Pagduso sa usa ka butones I-edit… kita magpadayon sa pag-edit sa usa o lain nga kapilian. Pananglitan, pinaagi sa pag-klik sa buton Usba ang Ngalan mahimo natong usbon ang ngalan sa bot, ingnon imbes Maalamon nga mga Hunahuna, pagsulat buang nga mga ideya. Botpic - kini ang avatar sa bot, kinahanglan nga labing menos 150 x 150 px. Description mao ang usa ka mubo nga paghulagway nga ang user nakakita sa diha nga ang bot gilansad sa unang higayon, isip tubag sa pangutana: Unsa ang mahimo niini nga bot? Mga - usa ka mas mubo nga paghulagway, nga gipasa sa usa ka link sa bot (https://t.me/SmartThoughtsBot) o sa pagtan-aw sa impormasyon bahin niini.

Paghimo ug Telegram bot sa Yandex.Cloud

Kinahanglan lang namon nga i-set up ang mga mando. Aron mahimo kini, i-press ang buton I-edit ang mga Sugo. Aron i-standardize ang mga gawi sa tiggamit telegrama nagrekomendar kanunay gamit ang duha ka mga sugo: /pagsugod ΠΈ / tabang, ug kung ang bot nagkinahanglan og mga setting - usa ka dugang nga /settings nga sugo. Ang among bot kay yano sama sa bola, mao nga wala pa kini magkinahanglan og bisan unsang mga setting. Gisulat namo ang unang duha ka mga sugo, nga among iproseso sa code. Karon, kung ang user mosulod sa usa ka slash (slash character: /) sa input field, usa ka lista sa mga sugo ang makita alang sa ilang dali nga pagpili. Ang tanan sama sa litrato: sa wala - gibutang namon ang mga mando pinaagi sa bot-amahan; sa tuo, kini nga mga mando magamit na sa mga tiggamit sa among bot.

Paghimo ug Telegram bot sa Yandex.Cloud

Yandex function

Karon nga nahimo na ang atong bot, adto ta sa Yandex.Cloudsa paghimo og function nga magpatuman sa atong bot code. Kung wala ka nagtrabaho uban Yandex.Cloud basaha ang materyal Alice sa yuta sa Bitrix, unya - Ang mga function sa Yandex nagpadala ug mail. Ako hapit sigurado nga kining duha ka medyo gagmay nga mga artikulo igo na alang kanimo nga adunay sukaranan nga pagsabut sa hilisgutan.

Busa sa console Yandex.Clouds sa wala nga nabigasyon menu, pilia ang aytem Mga Buhat sa Cloud, ug dayon pindota ang buton Paghimo og function. Gihatagan namon kini og ngalan, ug alang sa among kaugalingon - usa ka mubo nga paghulagway.

Paghimo ug Telegram bot sa Yandex.Cloud

Pagkahuman sa pagpadayon sa buton paghimo ug pagkahuman sa pila ka segundo, ang bag-ong function makita sa lista sa tanan nga mga gimbuhaton. Pag-klik sa iyang ngalan - kini magdala kanato sa panid kinatibuk-ang paghulagway atong function. Dinhi kinahanglan nimo nga ma-enableOn) switch publiko nga gimbuhatonaron kini magamit gikan sa gawas (alang sa Yandex.Clouds) sa kalibutan, ug ang bili sa mga uma Link sa pagtawag ΠΈ Tigpakilala - itago kini sa lawom nga sekreto gikan sa tanan gawas sa imong kaugalingon ug Telegram, aron ang lainlaing mga mangingilad dili makatawag sa imong function.

Paghimo ug Telegram bot sa Yandex.Cloud

Karon gamit ang wala nga menu adto sa Ang editor mga gimbuhaton. Atong ihiklin sa makadiyot ang atong Maalamon nga mga Hunahuna, ug paghimo og gamay nga template function aron masusi ang performance sa atong bot ... Apan, sa niini nga konteksto, kini nga function mao ang atong bot ... Sa laktud, karon ug dinhi mismo atong himoon ang pinakasimple nga bot nga "magsalamin" ( i.e. ipadala balik) mga hangyo sa user. Kini nga template kanunay magamit sa paghimo og bag-ong telegram bots aron masiguro nga ang komunikasyon sa Telegram'om nagtrabaho pag-ayo. Pag-klik Paghimo og file, tawagi index.js, ug online Editor sa code Idikit ang mosunod nga code sa kini nga file:

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
  };
};

Sa Yandex.Cloud console, kinahanglan kini tan-awon sama niini:

Paghimo ug Telegram bot sa Yandex.Cloud

Sa ubos, among gipakita entry point - index.botdiin index kini ang filename (index.js), ug bot - ngalan sa function (module.exports.bot). Biyai ang tanan nga uban nga mga uma "as is", ug sa ibabaw nga tuo nga suok i-klik ang buton Paghimo Bersyon. Human sa pipila ka segundo, kini nga bersyon sa function pagabuhaton. Wala madugay human sa pagsulay webhook, maghimo kita ug bag-ong bersyon βˆ’ Maalamon nga mga Hunahuna.

Paghimo ug Telegram bot sa Yandex.Cloud

Pagtipig sa butang

Karon nga naka set up na mi Yandex functionadto ta samtang naa ta sa console Yandex.Clouds, paghimo og usa ka gitawag nga. balde (balde, i.e. balde sa Russian, dili usa ka bouquet) alang sa pagtipig sa mga file sa imahe nga gamiton sa among bot Maalamon nga mga Hunahuna. Pagpili gikan sa wala nga menu sa nabigasyon Pagtipig sa Imo, pindota ang buton Paghimo balde, hatagi kini og ngalan, pananglitan, img-balde, ug, labaw sa tanan, Basaha ang pag-access sa mga butang himoa kini nga publiko - kung dili ang Telegram dili makakita sa among mga litrato. Ang tanan nga uban nga mga natad gibiyaan nga wala mausab. Gipugos namo ang buton Paghimo balde.

Paghimo ug Telegram bot sa Yandex.Cloud

Pagkahuman niana, ang usa ka lista sa tanan nga mga balde mahimong ingon niini (kung kini ra ang imong balde):

Paghimo ug Telegram bot sa Yandex.Cloud

Karon akong gisugyot nga i-klik ang ngalan sa balde, ug paghimo og usa ka folder sa sulod niini aron maorganisar ang pagtipig sa mga litrato alang sa lainlaing mga aplikasyon. Pananglitan, alang sa telegram bot Maalamon nga mga Hunahuna Naghimo ako usa ka folder nga gitawag tg-bot-smart-hunahuna (Wala, masabtan nako kini nga cipher). Paghimo usab usa.

Paghimo ug Telegram bot sa Yandex.Cloud

Karon mahimo nimong i-klik ang ngalan sa folder, adto niini ug i-upload ang mga file:

Paghimo ug Telegram bot sa Yandex.Cloud

Ug pag-klik sa ngalan sa file - kuhaa kini URL alang sa paggamit sa among bot, ug sa kinatibuk-an - bisan asa (apan, ayaw imantala kini URL dili kinahanglan, tungod kay ang trapiko gikan sa pagtipig sa butang gikargahan).

Paghimo ug Telegram bot sa Yandex.Cloud

Dinhi, sa tinuud, mao ra kana pagtipig sa butang. Karon mahibal-an nimo kung unsa ang buhaton kung makita nimo ang aghat sa pag-upload sa mga file didto.

Webhook

Karon atong i-install webhook - i.e. kung ang bot makadawat og update (pananglitan, usa ka mensahe gikan sa user), gikan sa server telegrama sa atong Yandex function ipadala ang hangyoPaghangyo) nga adunay datos. Ania ang usa ka hilo nga mahimo nimong idikit sa address field sa browser, ug dayon i-refresh ang panid (kini kinahanglan nga buhaton kausa lang): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Ilisan lang {bot_token} sa token nga among nadawat gikan sa amahan nga bot sa paghimo sa among bot, ug {webhook_url} - sa URL among Yandex function. Paghulat kadiyot! Apan RossKomCensorship nagdili sa mga provider sa Russian Federation sa pag-alagad sa adres https://api.telegram.org. Oo, husto kana. Apan mahimo nimong hunahunaon ang usa ka butang. Sa tinuud, mahimo nimo, pananglitan, pangutan-on ang imong lola bahin niini sa Ukraine, Israel o Canada - wala’y "mga censorship sa Russia" didto, ug ang Diyos lamang ang nahibal-an kung giunsa ang pagkinabuhi sa mga tawo kung wala kini. Ingon usa ka sangputanan, ang tubag sa hangyo sa pag-install sa webhook kinahanglan nga ingon niini:

Paghimo ug Telegram bot sa Yandex.Cloud

Pagsulay. Kinahanglan nga salamin.

Paghimo ug Telegram bot sa Yandex.Cloud

Tinuod kini. Ang among pahalipay - karon Yandex function nahimong telegrama-bot!

Maalamon nga mga Hunahuna

Ug karon naghimo kami og mga Smart Thoughts. Ang code bukas ug ug anaa sa GitHub. Maayo kaayo ang komento niini, ug usa lang ka gatos ka linya ang gitas-on. Basaha kini sama sa usa ka opera diva libretto!

Paghimo ug Telegram bot sa Yandex.Cloud

I-clone ang proyekto ug i-install ang mga dependency:

git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i

Himua ang mga pagbag-o nga kinahanglan nimo sa file index.js (opsyonal; dili nimo mabag-o ang bisan unsang butang). Paghimo zip-archive, nga adunay usa ka file index.js ug folder node_modules sa sulod, pananglitan, gitawag smart.zip.

Paghimo ug Telegram bot sa Yandex.Cloud

Karon adto sa console sa among Yandex function, pilia ang tab ZIP archive, pindota ang buton Pagpili og fileug i-download ang among archive smart.zip. Sa katapusan, sa taas nga tuo nga suok, i-klik ang buton Paghimo Bersyon.

Paghimo ug Telegram bot sa Yandex.Cloud

Sa pipila ka mga segundo, kung ang function na-update, among sulayan pag-usab ang among bot. Karon dili na siya "mga salamin", apan naghatag ug maalamon nga mga hunahuna!

Paghimo ug Telegram bot sa Yandex.Cloud

Kana lang para karong adlawa. Ang ubang mga artikulo mosunod. Kung interesado ka sa pagbasa niini, pag-subscribe sa mga pahibalo sa bag-ong mga artikulo. Mahimo kang mag-subscribe dinhi o telegrama- kanal IT Tutorial Zakhar, o Twitter @mikezaharov.

mga pakisayran

Code sa GitHub
Yandex Cloud Functions
Yandex Object Pagtipig
Mga bot: Usa ka pasiuna alang sa mga developer
Telegram Bot API

Mga donasyon

Paghimo ug Telegram bot sa Yandex.Cloud

Source: www.habr.com

Idugang sa usa ka comment