Tsim lub Telegram bot hauv Yandex.Cloud

Tsim lub Telegram bot hauv Yandex.Cloud

Niaj hnub no, los ntawm cov khoom seem, peb yuav sib sau ua ke Yandex.Cloud Telegram bot siv Yandex Cloud Functions (los yog Yandex muaj nuj nqi - rau luv) thiab Yandex Object Storage (los yog Khoom cia - rau clarity). Txoj cai yuav nyob rau node.js. Txawm li cas los xij, muaj ib qho xwm txheej piquant - ib lub koom haum hu ua, cia peb hais, RossKomTsenzur (Censorship raug txwv los ntawm Tshooj 29 ntawm Txoj Cai Lij Choj ntawm Lavxias Federation), tsis tso cai rau cov neeg muab kev pabcuam hauv Is Taws Nem hauv Lavxias xa cov lus thov mus rau Telegram API los ntawm qhov chaw nyob: https://api.telegram.org/. Zoo, peb yuav tsis - tsis yog, tsis yog. Tom qab tag nrho, nyob rau hauv peb lub hnab muaj thiaj li hu ua. webhooks - Nrog lawv cov kev pab, peb tsis thov rau qhov chaw nyob tshwj xeeb, tab sis tsuas yog xa peb qhov kev thov raws li cov lus teb rau txhua qhov kev thov rau peb. Ntawd yog, ib yam li hauv Odessa, peb teb cov lus nug nrog cov lus nug. Yog vim li cas Telegram API yuav tsis tshwm nyob rau hauv peb cov cai.

Tsis lees paubCov npe ntawm ib lub koomhaum tseemfwv tau hais hauv tsab xov xwm no yog qhov tseeb, thiab muaj peev xwm sib tw nrog cov npe ntawm cov koomhaum hauv lub neej tiag tiag yog coincidental.

Yog li, peb yuav ua ib tug bot uas yuav muab peb cov kev xav ntse. Raws nraim li hauv daim duab:

Tsim lub Telegram bot hauv Yandex.Cloud

Koj tuaj yeem sim nws hauv kev nqis tes ua - ntawm no yog lub npe: @SmartThoughtsBot. Pom lub pob "Alice's Txawj"? Qhov no yog vim hais tias bot yog ib hom "tus khub" rau bot ntawm tib lub npe. Alice txuj ci, i.e. nws ua haujlwm tib yam li Alice txuj ci thiab nws muaj peev xwm hais tias lawv yuav muaj peev xwm nyob sib haum xeeb los ntawm kev tshaj tawm ib leeg. Hais txog yuav ua li cas tsim txawj ntse txawj xav piav nyob rau hauv tsab xov xwm Alice tau txais kev txawj ntse. Tam sim no (tom qab ua qee qhov kev hloov pauv tom qab kev tshaj tawm ntawm kab lus saum toj no) ntawm lub smartphone no txuj yuav zoo li no:

Tsim lub Telegram bot hauv Yandex.Cloud

Tsim ib tug bot

Kuv xav kom qhov kev qhia no muaj txiaj ntsig zoo rau txhua tus, suav nrog. thiab novice bot builders. Yog li ntawd, nyob rau hauv nqe lus no kuv yuav piav nyob rau hauv ib co nthuav dav yuav ua li cas los tsim nyob rau hauv dav dav Telegramua bots. Rau cov neeg uas tsis xav tau cov ntaub ntawv no, mus rau ntu hauv qab no.

Qhib daim ntawv thov Telegaram, cia peb hu tus txiv ntawm txhua tus bots (lawv muaj txhua yam zoo li tib neeg) - @BotFather kev - thiab ua ntej peb yuav muab nws / pab hais kom ua kom nws nco txog yam peb ua tau. Tam sim no peb yuav txaus siab rau pab neeg / newbot.

Tsim lub Telegram bot hauv Yandex.Cloud

Txij li thaum cov bot tau piav qhia ntawm no twb tau tsim, rau kev ua qauv qhia kuv yuav tsim lwm bot rau lub sijhawm luv luv (thiab tom qab ntawd tshem tawm). Kuv yuav hu nws DemoHabrBot. Cov npe (username) ntawm tag nrho cov telegram bots yuav tsum xaus nrog lo lus bot, piv txwv: MyCoolBot los yog kuv_cool_bot - Qhov no yog rau bots. Tab sis ua ntej peb muab lub npe bot (lub npe) - thiab qhov no yog rau tib neeg. Lub npe tuaj yeem ua txhua yam lus, muaj qhov chaw, thiab tsis tas yuav xaus nrog ib lo lus bot, thiab tsis tas yuav tshwj xeeb. Hauv qhov piv txwv no, kuv hu lub bot no Demo Hab.

Tsim lub Telegram bot hauv Yandex.Cloud

Tam sim no xaiv lub npe rau bot (username, ib qho rau bots). Wb hu nws DemoHabrBot. Txhua yam ntsig txog lub npe ntawm bot (lub npe) tsis cuam tshuam rau nws lub npe txhua - username (los yog siv, tab sis raws nraim qhov opposite). Tom qab ua tiav kev tsim lub npe bot tshwj xeeb, peb yuav tsum luam tawm thiab khaws cia (hauv kev ntseeg siab tshaj plaws!) lub token qhia hauv lub screenshot nrog lub xub liab. Nrog nws cov kev pab peb yuav tom qab tsim lub hauv paus los ntawm Telegram'ib webhook rau peb Yandex muaj nuj nqi.

Tsim lub Telegram bot hauv Yandex.Cloud

Tam sim no cia peb muab cov lus txib rau leej txiv ntawm txhua tus bots: /mybots, thiab nws yuav qhia peb cov npe ntawm tag nrho cov bots peb tau tsim. Cia peb tso lub bot tshiab tshiab nyob ib leeg rau tam sim no Demo Hab (nws tau tsim los qhia yuav ua li cas los tsim bots, tab sis peb kuj tseem yuav siv nws hnub no rau lwm lub hom phiaj ua qauv qhia), thiab cia peb saib cov bots. Txawj xav (@SmartThoughtsBot). Nyem lub pob nrog nws lub npe nyob rau hauv daim ntawv teev cov bots.

Tsim lub Telegram bot hauv Yandex.Cloud

Ntawm no peb tuaj yeem teeb tsa peb lub bot. Los ntawm nias lub pob Hloov kho… Peb yuav hloov mus rau kev kho ib qho lossis lwm qhov kev xaiv. Piv txwv li, los ntawm txhaj rau lub pob Kho Lub Npe peb tuaj yeem hloov lub npe ntawm bot, hais hloov Txawj xav, sau Cov tswv yim vwm. Botpic - qhov no yog bot's avatar, yuav tsum yog tsawg kawg 150 x 150 px. Hauj lwm - qhov no yog cov lus piav qhia luv luv uas tus neeg siv pom thaum pib lub bot thawj zaug, raws li cov lus teb rau lo lus nug: Qhov no bot tuaj yeem ua dab tsi? Hais txog - ib qho kev piav qhia luv luv, uas tau xa nrog qhov txuas mus rau bot (https://t.me/SmartThoughtsBot) lossis thaum saib cov ntaub ntawv hais txog nws.

Tsim lub Telegram bot hauv Yandex.Cloud

Txhua yam peb tau ua yog teeb tsa cov lus txib. Txhawm rau ua qhov no, nias lub pob Kho cov lus txib. Yuav kom standardize cov neeg siv kev xyaum Telegram pom zoo ib txwm siv ob lo lus txib: / pib ΠΈ / kev pab, thiab yog tias bot xav tau kev teeb tsa, siv cov lus txib ntxiv / nqis. Peb lub bot yog qhov yooj yim li pob, yog li nws tsis xav tau kev teeb tsa tsis tau. Peb sau thawj ob lo lus txib, uas peb yuav ua tiav hauv code. Tam sim no, yog hais tias tus neeg siv nkag mus rau ib tug slash (slash sign: /) nyob rau hauv lub input teb, ib daim ntawv teev cov lus txib yuav tshwm sim rau xaiv ceev. Txhua yam yog raws li hauv daim duab: sab laug - peb nruab cov lus txib los ntawm leej txiv bot; ntawm sab xis, cov lus txib no twb muaj rau cov neeg siv hauv peb lub bot.

Tsim lub Telegram bot hauv Yandex.Cloud

Yandex muaj nuj nqi

Tam sim no uas peb bot tau tsim, cia peb mus Yandex.Cloudlos tsim ib txoj haujlwm uas yuav ua rau peb cov bot tus lej. Yog tias koj tsis tau ua haujlwm nrog Yandex.Cloud nyeem cov ntaub ntawv Alice hauv thaj av ntawm Bitrix, thiab tom qab ntawd - Yandex functions xa ntawv. Kuv paub tseeb tias ob nqe lus luv luv no yuav txaus rau koj kom muaj kev nkag siab yooj yim ntawm cov ncauj lus.

Yog li ntawd nyob rau hauv lub console Yandex.Cloud nyob rau sab laug navigation zaub mov xaiv cov khoom Huab Kev Ua Haujlwm, thiab tom qab ntawd nias lub pob Tsim ib txoj haujlwm. Peb muab nws lub npe thiab cov lus piav qhia luv luv rau peb tus kheej.

Tsim lub Telegram bot hauv Yandex.Cloud

Tom qab nias lub pob tsim thiab tom qab ob peb vib nas this, cov haujlwm tshiab yuav tshwm sim hauv cov npe ntawm txhua txoj haujlwm. Nyem rau ntawm nws lub npe - qhov no yuav coj peb mus rau nplooj ntawv txheej txheem cej luam peb txoj haujlwm. Ntawm no koj yuav tsum tau pab (On) hloov Public functionkom nws nkag tau los ntawm sab nraud (rau Yandex.Cloud) ntawm lub ntiaj teb, thiab lub ntsiab lus ntawm cov teb Hu rau link ΠΈ Tus cim - khaws cia zais cia los ntawm txhua tus tsuas yog koj tus kheej thiab Telegram, kom koj txoj haujlwm tsis tuaj yeem raug hu los ntawm ntau tus kws dag ntxias.

Tsim lub Telegram bot hauv Yandex.Cloud

Tam sim no, siv cov ntawv qhia zaub mov sab laug, mus rau Tus editor muaj nuj nqi. Cia peb tso tseg ib pliag peb Txawj xav, thiab tsim ib tug tsawg template muaj nuj nqi los xyuas lub functionality ntawm peb bot... Txawm li cas los, nyob rau hauv lub ntsiab lus teb, qhov no muaj nuj nqi yog peb bot... Hauv luv luv, tam sim no thiab txoj cai ntawm no peb yuav ua ib tug yooj yim bot uas yuav "daim iav" ( i.e. xa rov qab) cov neeg siv thov. Cov qauv no yeej ib txwm siv tau thaum tsim telegram bots tshiab kom paub tseeb tias kev sib txuas lus nrog Telegram'ohm ua haujlwm zoo. Nyem Tsim cov ntaub ntawv, wb hu index.js, thiab online Code editor paste cov cai hauv qab no rau hauv cov ntaub ntawv no:

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

Hauv Yandex.Cloud console nws yuav tsum zoo li no:

Tsim lub Telegram bot hauv Yandex.Cloud

Ntxiv hauv qab no peb qhia Nkag nkag - index.botqhov twg Performance index qhov no yog lub npe ntawm cov ntaub ntawv (index.js), thiab bot - lub npe ua haujlwm (module.exports.bot). Cia tag nrho lwm cov teb raws li yog, thiab nyem lub pob nyob rau sab xis saum toj kawg nkaus Tsim version. Hauv ob peb vib nas this no version ntawm cov haujlwm yuav raug tsim. Tsis ntev tom qab kuaj webhook, peb yuav tsim ib tug tshiab version - Txawj xav.

Tsim lub Telegram bot hauv Yandex.Cloud

Khoom cia

Tam sim no peb tau tsim Yandex muaj nuj nqi, tuaj, thaum peb nyob hauv console Yandex.Cloud, cia peb tsim lub npe thoob (thoob, i.e. thoob nyob rau hauv Lavxias teb sab, tsis yog ib pob paj ntawm tag nrho cov) rau khaws cia cov duab cov ntaub ntawv uas yuav siv nyob rau hauv peb bot Txawj xav. Nyob rau sab laug navigation zaub mov xaiv cov khoom Yam khoom kwv, nias lub khawm Tsim ib lub thoob, tuaj nrog lub npe rau nws, piv txwv li, img - thoob, thiab, qhov tseem ceeb tshaj plaws, Nyeem kev nkag mus rau cov khoom Peb ua rau pej xeem - txwv tsis pub Telegram yuav tsis pom peb cov duab. Peb tawm tag nrho lwm qhov chaw tsis hloov pauv. Nias lub khawm Tsim ib lub thoob.

Tsim lub Telegram bot hauv Yandex.Cloud

Tom qab ntawd, cov npe ntawm txhua lub thoob yuav zoo li qhov no (yog tias qhov no yog koj lub thoob nkaus xwb):

Tsim lub Telegram bot hauv Yandex.Cloud

Tam sim no kuv xav kom nyem rau ntawm lub npe ntawm lub thoob thiab tsim ib daim nplaub tshev hauv nws los npaj cov duab khaws cia rau koj cov ntawv thov sib txawv. Piv txwv li, rau telegram bot Txawj xav Kuv tsim ib daim nplaub tshev hu ua tg-bot-smart-thoughts (tsis muaj dab tsi, Kuv yuav nkag siab cov cai no). Tsim ib qho thiab.

Tsim lub Telegram bot hauv Yandex.Cloud

Tam sim no koj tuaj yeem nyem rau ntawm lub npe nplaub tshev, mus rau hauv nws thiab upload cov ntaub ntawv:

Tsim lub Telegram bot hauv Yandex.Cloud

Thiab los ntawm txhaj rau lub npe ntawm cov ntaub ntawv - tau txais nws URL siv rau hauv peb lub bot, thiab feem ntau - nyob qhov twg (tab sis tsis txhob tshaj tawm qhov no URL tsis tsim nyog, txij li kev tsheb los ntawm Khoom cia raug them).

Tsim lub Telegram bot hauv Yandex.Cloud

Qhov ntawd yeej yog txhua yam muaj rau nws Khoom cia. Tam sim no koj yuav paub yuav ua li cas thaum koj pom ib qho kev ceeb toom kom upload cov ntaub ntawv muaj.

Webhook

Tam sim no peb yuav nruab webhook - i.e. thaum tus bot tau txais kev hloov tshiab (piv txwv li, cov lus los ntawm tus neeg siv) los ntawm lub server Telegram rau peb Yandex muaj nuj nqi kev thov yuav raug xa mus (thov) nrog cov ntaub ntawv. Ntawm no yog ib kab koj tuaj yeem yooj yim paste rau hauv koj tus browser qhov chaw nyob thiab tom qab ntawd rov kho nplooj ntawv (koj tsuas yog yuav tsum ua qhov no ib zaug): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Peb mam li hloov nws xwb {bot_token} rau lub token peb tau txais los ntawm leej txiv bot thaum tsim peb bot, thiab {webhook_url} - pe ua URL peb Yandex muaj nuj nqi. Tos ib pliag! Tab sis RossKomTsenzur txwv tsis pub cov kws kho mob hauv Lavxias Federation los ntawm kev pabcuam chaw nyob https://api.telegram.org. Yog lawm, yog lawm. Tab sis tuaj nrog ib yam dab tsi. Piv txwv li, koj tuaj yeem nug koj pog txog qhov no hauv Ukraine, Ixayees lossis Canada - tsis muaj "Rosskomcensorship" nyob ntawd, thiab Vajtswv tsuas paub tias tib neeg nyob tsis muaj nws. Yog li ntawd, qhov kev thov-lus teb thaum txhim kho lub webhook yuav tsum zoo li no:

Tsim lub Telegram bot hauv Yandex.Cloud

Peb tab tom sim. Nws yuav tsum "daim iav".

Tsim lub Telegram bot hauv Yandex.Cloud

Qhov no muaj tseeb. Peb ua kev zoo siab - tam sim no Yandex muaj nuj nqi tau ua Telegram-bot!

Txawj xav

Tam sim no cia peb ua Cov Kev Xav Txawj Ntse. Txoj cai qhib thiab dag rau GitHub. Nws yog cov lus pom zoo thiab tsuas yog ib puas kab ntev. Nyeem nws zoo li opera diva libretto!

Tsim lub Telegram bot hauv Yandex.Cloud

Clone qhov project thiab nruab dependencies:

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

Ua cov kev hloov koj xav tau rau cov ntaub ntawv index.js (xaiv tau; koj tsis tas yuav hloov dab tsi). Tsim zip-archive, nrog cov ntaub ntawv index.js thiab folder node_modules sab hauv, piv txwv li, hauv qab lub npe ntse.zip.

Tsim lub Telegram bot hauv Yandex.Cloud

Tam sim no mus rau lub console rau peb Yandex muaj nuj nqi, xaiv lub tab ZIP archive, nias lub pob Xaiv ib cov ntaub ntawv, thiab download tau peb archive ntse.zip. Thaum kawg, nyob rau sab xis saum toj kawg nkaus, nyem lub pob Tsim version.

Tsim lub Telegram bot hauv Yandex.Cloud

Hauv ob peb vib nas this, thaum lub luag haujlwm hloov kho, peb yuav sim peb cov bot dua. Tam sim no nws tsis yog "daim iav", tab sis xa cov kev xav ntse!

Tsim lub Telegram bot hauv Yandex.Cloud

Qhov ntawd yog tag nrho rau hnub no. Ntau cov ntawv ua raws. Yog tias koj xav nyeem qhov no, sau npe rau cov ntawv ceeb toom txog cov ntawv tshiab. Koj tuaj yeem sau npe ntawm no, lossis ntawm Telegram-channel IT Tutorial Zakhar, lossis Twitter @mikezaharov.

ua tim khawv

Code ntawm GitHub
Yandex Cloud Functions
Yandex Object Storage
Bots: Kev taw qhia rau cov neeg tsim khoom
Telegram Bot API

Nyiaj pub dawb

Tsim lub Telegram bot hauv Yandex.Cloud

Tau qhov twg los: www.hab.com

Ntxiv ib saib