Manangana bot Telegram ao amin'ny Yandex.Cloud

Manangana bot Telegram ao amin'ny Yandex.Cloud

Androany, avy amin'ny akora sisa tavela no hivondronantsika Yandex.Cloud Telegram bot amin'ny Yandex Cloud Functions (na Yandex asa - raha fohy) ary Yandex Object Storage (na fitahirizana zavatra - mba hazava). Ho eo ny kaody Node.js. Na izany aza, misy toe-javatra iray mampientanentana - fikambanana iray antsoina hoe, andao atao hoe, RossKomTsenzur (Ny sivana dia voararan'ny Andininy faha-29 ao amin'ny LalΓ m-panorenan'ny Federasiona Rosiana), tsy mamela ireo mpamatsy aterineto Rosiana handefa fangatahana amin'ny Telegram API amin'ny adiresy manaraka ireto: https://api.telegram.org/. Eny, tsy hanao izahay - tsia, tsia. Rehefa dinihina tokoa, ao amin`ny kitaponay misy ny antsoina hoe. webhooks β€” miaraka amin'ny fanampian'izy ireo, tsy manao fangatahana amin'ny adiresy manokana izahay, fa mandefa fotsiny ny fangatahanay ho valin'ny fangatahana rehetra aminay. Izany hoe, toy ny any Odessa, mamaly fanontaniana amin'ny fanontaniana. Izany no antony Telegram API dia tsy hiseho ao amin'ny kaodinay.

DisclaimerNy anaran'ny fikambanam-panjakana rehetra voalaza ato amin'ity lahatsoratra ity dia foronina, ary mety ho fifanandrifian-javatra miaraka amin'ny anaran'ny fikambanana tena misy.

Noho izany, hanao bot isika izay hanome antsika eritreritra marani-tsaina. Tahaka ny amin'ny sary:

Manangana bot Telegram ao amin'ny Yandex.Cloud

Azonao atao ny manandrana azy amin'ny hetsika - ity ny anarana: @SmartThoughtsBot. Voamarika ny bokotra "Ny fahaizan'i Alice"? Izany dia satria ny bot dia karazana "mpiara-dia" ho an'ny bot mitovy anarana. Ny fahaizan'i Alice, i.e. dia manao asa mitovy amin'ny Ny fahaizan'i Alice ary azo inoana fa afaka miara-miaina am-pilaminana izy ireo amin'ny fifampiraharahana. Momba ny fomba famoronana fahaizana Smart Thoughts voalaza ao amin’ilay lahatsoratra Nahazo fahaizana i Alice. Ankehitriny (rehefa nanao fanovana vitsivitsy taorian'ny famoahana ny lahatsoratra etsy ambony) amin'ny smartphone ity fahaiza-manao dia hiseho toy izao:

Manangana bot Telegram ao amin'ny Yandex.Cloud

Mamorona bot

Tiako ho mahasoa ny rehetra ity fampianarana ity, anisan'izany. ary mpamorona bot vaovao. Noho izany, amin'ity fizarana ity dia hamariparitra amin'ny antsipiriany ny fomba hamoronana amin'ny ankapobeny telegramasy bots. Ho an'ireo izay tsy mila izany fampahalalana izany dia mandehana amin'ireto fizarana manaraka ireto.

Sokafy ny fampiharana Telegaram, andao hiantso ny rain'ny bots rehetra (manana ny zava-drehetra toy ny olona izy ireo) - @BotFather - ary homentsika azy ny baiko /help aloha mba hamelombelona ny fitadidiany ny zavatra azontsika atao. Ankehitriny isika dia ho liana amin'ny ekipa / newbot.

Manangana bot Telegram ao amin'ny Yandex.Cloud

Koa satria efa noforonina ilay bot voalaza eto, dia hamorona bot hafa indray aho mandritra ny fotoana fohy (ary mamafa azy avy eo). Hantsoiko izy DemoHabrBot. Anarana (Anaran'ny mpampiasa) amin'ny bots telegrama rehetra dia tsy maintsy mifarana amin'ny teny Bot, ohatra: MyCoolBot na my_cool_bot - ho an'ny bots ity. Fa omena anarana aloha ilay bot (anarana) - ary ho an'ny olona izany. Ny anarana dia mety amin'ny fiteny rehetra, misy habaka, ary tsy mila mifarana amin'ny teny iray Bot, ary tsy voatery ho tokana akory. Amin'ity ohatra ity dia niantso ity bot ity aho Demo Habr.

Manangana bot Telegram ao amin'ny Yandex.Cloud

Misafidiana anarana ho an'ny bot (Anaran'ny mpampiasa, ny iray ho an'ny bots). Andeha isika hiantso azy DemoHabrBot. Ny zava-drehetra mifandraika amin'ny anaran'ny bot (anarana) tsy misy ifandraisany amin'ny anarany mihitsy - Anaran'ny mpampiasa (na mihatra, fa ny mifanohitra amin'izany). Rehefa nahavita namorona anarana bot tsy manam-paharoa isika dia mila mandika sy mitahiry (amin'ny fahatokisana henjana indrindra!) Ny famantarana aseho amin'ny pikantsary miaraka amin'ny zana-tsipìka mena. Miaraka amin'ny fanampiany dia hametraka ny niandohany isika any aoriana telegrama'webhook ho antsika Yandex asa.

Manangana bot Telegram ao amin'ny Yandex.Cloud

Andeha isika hanome baiko ny rain'ny bots rehetra: /mybots, ary hampiseho antsika ny lisitry ny bots noforoninay. Aleo avela irery aloha ilay bota vao masaka Demo Habr (namorona azy io mba hampisehoana ny fomba hamoronana bots, fa hampiasa azy io koa isika anio ho an'ny tanjona fihetsiketsehana hafa), ary andao hojerentsika ny bot Smart Thoughts (@SmartThoughtsBot). Kitiho ny bokotra misy ny anarany ao amin'ny lisitry ny bots.

Manangana bot Telegram ao amin'ny Yandex.Cloud

Eto isika dia afaka manamboatra ny bot. Amin'ny fanindriana ny bokotra Hanova ny ... Hiroso amin'ny fanitsiana iray na safidy hafa isika. Ohatra, amin'ny fipihana ny bokotra Hanova anarana afaka manova ny anaran'ny bot isika, lazao Smart Thoughts, manoratra Hevitra adala. Botpic - io no avatar'ny bot, tsy maintsy farafaharatsiny 150 x 150 px. Description - famaritana fohy izay hitan'ny mpampiasa rehefa sambany vao manomboka ny bot, ho valin'ny fanontaniana: Inona no azon'ity bot ity atao? About - famaritana fohy kokoa, izay ampitaina miaraka amin'ny rohy mankany amin'ny bot (https://t.me/SmartThoughtsBot) na rehefa mijery vaovao momba izany.

Manangana bot Telegram ao amin'ny Yandex.Cloud

Ny hany tsy maintsy ataontsika dia ny mametraka ny baiko. Mba hanaovana izany, tsindrio ny bokotra Ahitsio baiko. Mba hanara-penitra ny fanaon'ny mpampiasa telegrama manoro hevitra mampiasa baiko roa foana: /manomboka ΠΈ / Vonjeo, ary raha mila fanovana ny bot dia ampiasao ny baiko fanampiny /setting. Tsotra toy ny baolina ny bot ananay, ka tsy mila fanovana. Manoratra ny baiko roa voalohany izahay, izay hokarakarainay amin'ny code. Ankehitriny, raha miditra slash (marika slash: /) eo amin'ny sehatra fampidirana ny mpampiasa, dia hisy lisitry ny baiko hiseho ho an'ny fifantenana haingana. Ny zava-drehetra dia toy ny eo amin'ny sary: ​​eo ankavia - mametraka baiko amin'ny alΓ lan'ny bot ray; eo ankavanana, ireo baiko ireo dia efa azon'ny mpampiasa ao amin'ny bot-nay.

Manangana bot Telegram ao amin'ny Yandex.Cloud

Yandex asa

Efa noforonina izao ny bot-ntsika, andao handeha Yandex.Cloudmba hamoronana fiasa izay hanatanteraka ny kaodin'ny bot. Raha mbola tsy niara-niasa tamin'ny Yandex.Cloud mamaky ny fitaovana Alice ao amin'ny tanin'ny Bitrix, ary avy eo - Ny fiasa Yandex dia mandefa mailaka. Tena azoko antoka fa ireo lahatsoratra roa somary fohy ireo dia ampy ho anao hanana fahatakarana fototra momba ilay lohahevitra.

Koa amin'ny console Yandex.Cloud ao amin'ny menio fitetezana havia dia fidio ilay entana Fomba amin'ny rahona, ary tsindrio ny bokotra Mamorona fiasa. Omentsika anarana sy famaritana fohy ho antsika izany.

Manangana bot Telegram ao amin'ny Yandex.Cloud

Rehefa avy manindry ny bokotra mamorona ary rehefa afaka segondra vitsy, dia hiseho eo amin'ny lisitry ny asa rehetra ny fiasa vaovao. Kitiho ny anarany - hitondra antsika any amin'ny pejy izany topy maso ny asantsika. Eto ianao dia mila mamela (On) switch Asa ampahibemasomba ho azo idirana avy any ivelany (ho an'ny Yandex.Cloud) izao tontolo izao, ary ny hevitry ny saha Rohy antso ΠΈ Solon'anarana - Ataovy tsiambaratelo lalina amin'ny olon-drehetra izany afa-tsy ny tenanao sy Telegram, mba tsy hantsoin'ny mpisoloky isan-karazany ny asanao.

Manangana bot Telegram ao amin'ny Yandex.Cloud

Ankehitriny, mampiasa ny menu havia, mandehana mankany Ilay mpanoratra asa. Aleo ajanona kely ny antsika Smart Thoughts, ary mamorona fiasa mΓ΄dely kely indrindra mba hijerena ny fiasan'ny bot-ntsika... Na izany aza, amin'ity toe-javatra ity, ity fiasa ity dia ny bot-ntsika... Raha fintinina, amin'izao fotoana izao ary eto dia hanao bot tsotra isika izay "hitaratra" ( izany hoe alefa miverina ) fangatahan'ny mpampiasa. Ity mΓ΄dely ity dia azo ampiasaina foana rehefa mamorona bots telegrama vaovao mba hahazoana antoka fa mifandray amin'ny Telegram'ohm miasa tsara. tsindrio Mamorona rakitra, andao hiantso azy index.js, ary amin'ny Internet Editor code apetaho amin'ity rakitra ity ity code manaraka ity:

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

Ao amin'ny Yandex.Cloud console dia tokony ho toy izao izy io:

Manangana bot Telegram ao amin'ny Yandex.Cloud

Asehoy eto ambany Toerana fidirana - index.botizay Fanondroana ity ny anaran'ny rakitra (index.js), ary Bot - anaran'ny asa (module.exports.bot). Avelao ho toy ny misy ny saha hafa rehetra, ary tsindrio ny bokotra eo amin'ny zoro havanana ambony Mamorona version. Ao anatin'ny segondra vitsy dia hoforonina ity dikan-teny ity. Fotoana fohy taorian'ny fitsapana webhook, hamorona dikan-teny vaovao isika βˆ’ Smart Thoughts.

Manangana bot Telegram ao amin'ny Yandex.Cloud

fitahirizana zavatra

Ankehitriny isika dia namorona Yandex asa, andao, raha mbola ao amin'ny console isika Yandex.Cloud, andao hamorona ilay antsoina hoe siny (siny, i.e. siny amin'ny teny rosiana, tsy fehezam-boninkazo mihitsy) ho fitehirizana rakitra sary izay hampiasaina ao amin'ny bot Smart Thoughts. Ao amin'ny menio navigateur ankavia fidio ny singa Toeram-piarovana, tsindrio ny bokotra Mamorona siny, manaova anarana ho azy, ohatra, img-bucket, ary indrindra indrindra, Vakio ny fidirana amin'ny zavatra Ampaham-bahoaka izany - raha tsy izany dia tsy hahita ny sarinay ny Telegram. Avelantsika tsy hiova ny sehatra hafa rehetra. Tsindrio ny bokotra Mamorona siny.

Manangana bot Telegram ao amin'ny Yandex.Cloud

Aorian'io, mety ho toy izao ny lisitry ny siny rehetra (raha ity no siny tokana anao):

Manangana bot Telegram ao amin'ny Yandex.Cloud

Izao aho dia manoro hevitra ny manindry ny anaran'ny siny ary mamorona lahatahiry ao anatiny mba handaminana ny fitahirizana sary ho an'ny fampiharana samihafa. Ohatra, ho an'ny bot telegrama Smart Thoughts Namorona lahatahiry iray antsoina hoe tg-bot-smart-thoughts (tsy misy, ho azoko ity code ity). Mamorona iray koa.

Manangana bot Telegram ao amin'ny Yandex.Cloud

Azonao atao izao ny manindry ny anaran'ny lahatahiry, midira ao ary mampiditra rakitra:

Manangana bot Telegram ao amin'ny Yandex.Cloud

Ary amin'ny fipihana ny anaran'ny rakitra - mahazo azy URL ampiasaina amin'ny bot, ary amin'ny ankapobeny - na aiza na aiza (fa aza avoaka ity URL tsy ilaina, satria ny fifamoivoizana avy fitahirizana zavatra voampanga).

Manangana bot Telegram ao amin'ny Yandex.Cloud

Amin'ny ankapobeny dia izay ihany no ilaina fitahirizana zavatra. Ho fantatrao izao ny tokony hatao rehefa mahita bitsika hampiditra rakitra ao ianao.

Webhook

Ankehitriny dia hametraka webhook - i.e. rehefa mahazo fanavaozana (ohatra, hafatra avy amin'ny mpampiasa) avy amin'ny mpizara ny bot telegrama ho antsika Yandex asa hisy fangatahana halefa (fangatahana) miaraka amin'ny data. Ity misy andalana azonao apetaka fotsiny ao amin'ny sahan'ny adiresin'ny navigateur ary havaozy ny pejy (indray mandeha ihany no tsy maintsy ataonao): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Hosoloinay fotsiny {bot_token} amin'ny famantarana azonay avy amin'ny raim-pianakaviana bot rehefa namorona ny bot, ary {webhook_url} - on URL NY Yandex asa. Andraso vetivety! SAINGY RossKomTsenzur mandrara ny mpamatsy ao amin'ny Federasiona Rosiana tsy hanao ny adiresy https://api.telegram.org. Eny marina izany. Fa tongava zavatra. Raha ny marina, azonao atao, ohatra, ny manontany ny renibenao momba izany any Ukraine, Israely na Kanada - tsy misy "Rosskomcensorship" any, ary Andriamanitra ihany no mahalala ny fomba fiainan'ny olona tsy misy izany. Vokatr'izany dia tokony ho toy izao ny valin'ny fangatahana rehefa mametraka webhook:

Manangana bot Telegram ao amin'ny Yandex.Cloud

Mitsapa isika. Tokony "fitaratra".

Manangana bot Telegram ao amin'ny Yandex.Cloud

Marina izany. Miarahaba antsika - izao Yandex asa lasa telegrama-bot!

Smart Thoughts

Andeha isika hanao Smart Thoughts. Misokatra ny kaody ary mipetraka eo GitHub. Tena tsara ny fanehoan-kevitra ary andalana zato monja ny halavany. Vakio toy ny opera diva libretto!

Manangana bot Telegram ao amin'ny Yandex.Cloud

Clone ny tetikasa ary apetraho ny miankina:

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

Ataovy ny fanovana ilainao amin'ny rakitra index.js (tsy voatery; tsy mila manova na inona na inona ianao). MANANGANA Zip-archive, misy rakitra index.js ary folder node_modules ao anatiny, ohatra, eo ambanin’ny anarana smart.zip.

Manangana bot Telegram ao amin'ny Yandex.Cloud

Mankanesa any amin'ny console mankany aminay Yandex asa, safidio ny tabilao ZIP archive, tsindrio ny bokotra Mifidiana rakitra, ary alaivo ny rakitray smart.zip. Farany, eo amin'ny zoro havanana ambony, tsindrio ny bokotra Mamorona version.

Manangana bot Telegram ao amin'ny Yandex.Cloud

Ao anatin'ny segondra vitsy, rehefa havaozina ny fiasa, dia hitsapa ny bot indray izahay. Ankehitriny dia tsy "fitaratra" intsony izy, fa manome eritreritra marani-tsaina!

Manangana bot Telegram ao amin'ny Yandex.Cloud

Izay ihany ny anio. Misy lahatsoratra hafa manaraka. Raha liana amin'ny famakiana ity ianao dia misoratra anarana amin'ny fampahafantarana momba ny lahatsoratra vaovao. Azonao atao ny misoratra anarana eto, na amin'ny telegrama-fantsona IT Tutorial Zakhar, na Twitter @mikezaharov.

soratra masina

Code ao amin'ny GitHub
Yandex Cloud Functions
Yandex Object Storage
Bots: Fampidirana ho an'ny mpamorona
Telegram Bot API

FANOMEZANA

Manangana bot Telegram ao amin'ny Yandex.Cloud

Source: www.habr.com

Add a comment