Wulite bot Telegram na Yandex.Cloud

Wulite bot Telegram na Yandex.Cloud

Taa, site na ihe mkpofu, anyị ga-agbakọta Yandex.Cloud Telegram bot eji Ọrụ Yandex Cloud (ma ọ bụ Yandex ọrụ - maka nkenke) na Nchekwa ihe Yandex (ma ọ bụ Nchekwa ihe - maka idoanya). Koodu ga-adị Node.js. Otú ọ dị, e nwere otu ọnọdụ piquant - otu nzukọ a na-akpọ, ka anyị kwuo, RossKomTsenzur (Amachibidoro nyocha site na Nkeji edemede 29 nke Iwu Iwu nke Russian Federation), anaghị ekwe ka ndị na-eweta Internetntanetị Russia nyefee arịrịọ. Telegram API site na adreesị: https://api.telegram.org/. Ọfọn, anyị agaghị - mba, mba. E kwuwerị, na akpa anyị nwere ihe a na-akpọ. webhooks - site n'enyemaka ha, anyị anaghị arịọ arịrịọ n'otu adreesị, kama na-eziga arịrịọ anyị ka ọ bụrụ nzaghachi nye arịrịọ ọ bụla anyị. Ya bụ, dị ka na Odessa, anyị na-aza ajụjụ na ajụjụ. Ya kpatara Telegram API agaghị apụta na koodu anyị.

NkwuputaAha ụlọ ọrụ gọọmentị ọ bụla a kpọtụrụ aha n'isiokwu a bụ akụkọ ifo, ma aha ndị nwere ike na aha òtù dị adị na-adaba adaba.

Yabụ, anyị ga-eme bot nke ga-enye anyị echiche smart. Dị ka ọ dị na foto a:

Wulite bot Telegram na Yandex.Cloud

Ị nwere ike ịnwale ya n'omume - ebe a bụ aha: @SmartThoughtsBot. Ahụrụ bọtịnụ ahụ "Skill Alice"? Nke a bụ n'ihi na bot bụ ụdị "mmekọrịta" maka bot nke otu aha ahụ. Nkà Alice, i.e. ọ na-arụ otu ọrụ dị ka Nkà Alice ma ọ ga-ekwe omume na ha ga-enwe ike ibikọ ọnụ n'udo site n'ịkpọsa ibe ha. Banyere otu esi emepụta nka Smart Echiche kọwara n'isiokwu Alice nwetara nkà. Ugbu a (mgbe emechara mgbanwe ụfọdụ mgbe mbipụta nke isiokwu dị n'elu) na smartphone a nka ga-adị ka nke a:

Wulite bot Telegram na Yandex.Cloud

Ịmepụta bot

Ọ ga-amasị m ka nkuzi a baara onye ọ bụla uru, gụnyere. na ndị na-ewu bot novice. Ya mere, na nkebi a, m ga-akọwa n'ụzọ zuru ezu otú e si emepụta n'ozuzu telegramna bots. Maka ndị na-achọghị ozi a, gaba na ngalaba ndị a.

Mepee ngwa Telegaram, ka anyị kpọọ nna nke bots niile (ha nwere ihe niile dị ka ndị mmadụ) - @IGIHE - na mbụ anyị ga-enye ya iwu / enyemaka iji mee ka ọ dịghachi icheta ihe anyị nwere ike ime. Ugbu a, anyị ga-enwe mmasị na otu / newbot.

Wulite bot Telegram na Yandex.Cloud

Ebe ọ bụ na bot a kọwara ebe a ka emebelarị, maka ihe ngosi, m ga-emepụta bot ọzọ maka obere oge (ma kpochapụ ya). Aga m akpọ ya DemoHabrBot. Aha (aha njirimara) Bots telegram niile ga-ejedebe na okwu ahụ bot, dịka ọmụmaatụ: MyCoolBot ma ọ bụ my_cool_bot - Nke a bụ maka bots. Mana nke mbụ anyị na-enye bot aha (aha) - na nke a bụ maka ndị mmadụ. Aha ahụ nwere ike ịbụ n'asụsụ ọ bụla, nwere oghere, ọ nweghịkwa iji okwu mechie bot, na ọ dịghịdị mkpa ka ọ bụrụ ihe pụrụ iche. N'ihe atụ a, akpọrọ m bot a Demo Habr.

Wulite bot Telegram na Yandex.Cloud

Ugbu a họrọ aha maka bot (aha njirimara, nke maka bots). Ka anyị kpọọ ya DemoHabrBot. Ihe niile metụtara aha bot (aha) adịghị emetụta aha ya ma ọlị - aha njirimara (ma ọ bụ na-emetụta, ma kpọmkwem na-abụghị). Mgbe ịmepụtara aha bot pụrụ iche nke ọma, anyị kwesịrị idetuo ma chekwaa (na ntụkwasị obi siri ike!) Ihe ngosi egosiri na nseta ihuenyo nwere akụ uhie. Site n'enyemaka ya, anyị ga-emecha guzobe sitere na telegram'a webhook anyị Yandex ọrụ.

Wulite bot Telegram na Yandex.Cloud

Ugbu a, ka anyị nye nna bots niile iwu: /mybots, ọ ga-egosikwa anyị ndepụta nke bots niile anyị mepụtara. Ka anyị hapụ bot esiri esi ọhụrụ naanị ugbu a Demo Habr (E mere ya iji gosi ka esi emepụta bots, ma anyị ga-ejikwa ya taa maka ihe ngosi ndị ọzọ), ka anyị leba anya na bot. Echiche mara mma (@SmartThoughtsBot). Pịa bọtịnụ nwere aha ya na listi bots.

Wulite bot Telegram na Yandex.Cloud

N'ebe a, anyị nwere ike hazie bot anyị. Na ịpị bọtịnụ Dezie... Anyị ga-aga n'ihu na-edezi otu ma ọ bụ nhọrọ ọzọ. Dịka ọmụmaatụ, site na ịpị bọtịnụ Dezie Aha anyị nwere ike ịgbanwe aha bot, kwuo kama Echiche mara mma, dee Echiche nzuzu. Botpic - nke a bụ avatar bot, ga-abụrịrị opekata mpe 150 x 150 px. Description - nke a bụ nkọwa dị mkpirikpi nke onye ọrụ na-ahụ mgbe ọ na-amalite bot na nke mbụ, dịka azịza nye ajụjụ a: Kedu ihe bot a nwere ike ime? Banyere - nkọwa nkọwa nkenke, nke a na-ebute site na njikọ na bot (https://t.me/SmartThoughtsBot) ma ọ bụ mgbe ị na-elele ozi gbasara ya.

Wulite bot Telegram na Yandex.Cloud

Naanị ihe anyị ga-eme bụ ịtọlite ​​iwu. Iji mee nke a, pịa bọtịnụ Dezie iwu. Iji hazie omume onye ọrụ telegram na-atụ aro iji iwu abụọ mgbe niile: /bido и / Enyemaka, ma ọ bụrụ na bot chọrọ ntọala, jiri mgbakwunye / ntọala iwu. Bot anyị dị mfe dị ka bọọlụ, yabụ na ọ chọghị ntọala ọ bụla. Anyị na-ede iwu abụọ mbụ, nke anyị ga-ahazi na koodu. Ugbu a, ọ bụrụ na onye ọrụ abanye slash (akara ngosi slash: /) na mpaghara ntinye, ndepụta iwu ga-apụta maka nhọrọ ngwa ngwa. Ihe niile dị ka ọ dị na foto a: n'aka ekpe - anyị na-etinye iwu site na nna bot; n'aka nri, iwu ndị a adịlarị ndị ọrụ na bot anyị.

Wulite bot Telegram na Yandex.Cloud

Yandex ọrụ

Ugbu a ka emepụtara bot anyị, ka anyị gaa Yandex.Cloudiji mepụta ọrụ ga-eme koodu bot anyị. Ọ bụrụ na gị na ha arụbeghị ọrụ Yandex.Cloud gụọ ihe ahụ Alice na ala Bitrix, Ọzọkwa - Ọrụ Yandex na-eziga ozi. Eji m n'aka na akụkọ abụọ a dị mkpụmkpụ ga-ezuru gị inwe nghọta bụ isi nke isiokwu ahụ.

Ya mere na console Yandex.Cloud n'akụkụ aka ekpe nke igodo nsoroụzọ họrọ ihe ahụ Igwe ojii, wee pịa bọtịnụ Mepụta ọrụ. Anyị na-enye ya aha na nkọwa dị nkenke maka onwe anyị.

Wulite bot Telegram na Yandex.Cloud

Mgbe ịpịchara bọtịnụ ahụ Mepụta a ma mgbe nkeji ole na ole gachara, ọrụ ọhụrụ ahụ ga-apụta na listi ọrụ niile. Pịa aha ya - nke a ga-akpọrọ anyị gaa na ibe nnyocha ọrụ anyị. Ebe a ka ị ga-eme ka (On) ịgbanwee Ọrụ ọhanke mere na ọ ga-esi na mpụga (maka Yandex.Cloud) nke ụwa, na ihe ubi pụtara Njikọ oku и Ihe nchọpụta - Debe ya nke ọma na onye ọ bụla ma e wezụga onwe gị na Telegram, ka ndị aghụghọ dị iche iche ghara ịkpọ ọrụ gị.

Wulite bot Telegram na Yandex.Cloud

Ugbu a, na-eji menu aka ekpe, gaa na Onye editọ ọrụ. Ka anyị wepụta oge nke anyị Echiche mara mma, ma mepụta obere ọrụ template iji lelee ọrụ nke bot anyị ... Otú ọ dị, na nke a, ọrụ a bụ bot anyị ... Na nkenke, ugbu a na ebe a, anyị ga-eme bot dị mfe nke ga- "enyo" ( ya bụ zipu azụ ) arịrịọ onye ọrụ. Enwere ike iji ndebiri a mgbe niile mgbe ị na-emepụta bots telegram ọhụrụ iji jide n'aka na nkwurịta okwu na Telegram'ohm na-arụ ọrụ nke ọma. Pịa Mepụta faịlụ, ka anyị kpọọ ya index.js, na ntanetị Koodu nchịkọta akụkọ mado koodu a na faịlụ a:

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

Na Yandex.Cloud console ọ kwesịrị ịdị ka nke a:

Wulite bot Telegram na Yandex.Cloud

Ọzọkwa n'okpuru anyị na-egosi Ebe ntinye - index.botebe index nke a bụ aha faịlụ (index.js), na bot - aha ọrụ (modul.exports.bot). Hapụ mpaghara ndị ọzọ niile dị ka ọ dị, wee pịa bọtịnụ dị n'akụkụ aka nri elu Mepụta ụdị. N'ime sekọnd ole na ole, a ga-emepụta ụdị ọrụ a. N'oge na-adịghị mgbe ule nko weebụ, anyị ga-emepụta ụdị ọhụrụ - Echiche mara mma.

Wulite bot Telegram na Yandex.Cloud

Nchekwa ihe

Ugbu a anyị kere Yandex ọrụ, bia, ka anyi no na console Yandex.Cloud, ka anyị mepụta ihe a na-akpọ ịwụ (ịwụ, i.e. ịwụ na Russian, ọ bụghị bouquet ma ọlị) maka ịchekwa faịlụ onyonyo a ga-eji na bot anyị. Echiche mara mma. N'ime menu nsoroụzọ aka ekpe họrọ ihe ahụ Nchekwa Ihe, pịa bọtịnụ Mepụta ịwụ, wepụta aha maka ya, dịka ọmụmaatụ, img-bucket, na, nke kachasị mkpa, Gụọ ohere ịnweta ihe Anyị na-eme ya ọha - ma ọ bụghị na Telegram agaghị ahụ foto anyị. Anyị na-ahapụ ubi ndị ọzọ niile agbanweghị. Pịa bọtịnụ Mepụta ịwụ.

Wulite bot Telegram na Yandex.Cloud

Mgbe nke a gasịrị, ndepụta bọket niile nwere ike ịdị ka nke a (ọ bụrụ na nke a bụ naanị bọket gị):

Wulite bot Telegram na Yandex.Cloud

Ugbu a, m na-atụ aro ịpị aha nke ịwụ na ịmepụta nchekwa n'ime ya iji hazie nchekwa nke ihe oyiyi maka ngwa gị dị iche iche. Dịka ọmụmaatụ, maka bot telegram Echiche mara mma M mepụtara folda a na-akpọ tg-bot-smart-echiche (ọ dịghị ihe, m ga-aghọta nke a koodu). Mepụtakwa otu.

Wulite bot Telegram na Yandex.Cloud

Ugbu a ị nwere ike pịa aha nchekwa ahụ, banye n'ime ya wee bulite faịlụ:

Wulite bot Telegram na Yandex.Cloud

Na site na ịpị aha faịlụ - nweta ya URL maka iji na bot anyị, na n'ozuzu - ebe ọ bụla (mana ebipụtala nke a URL adịghị mkpa, ebe ọ bụ na okporo ụzọ si Nchekwa ihe ebubo).

Wulite bot Telegram na Yandex.Cloud

Nke ahụ bụ ihe niile dị na ya Nchekwa ihe. Ugbu a ị ga-ama ihe ị ga-eme mgbe ị hụrụ ngwa ngwa bulite faịlụ ebe ahụ.

Webhook

Ugbu a, anyị ga-wụnye nko weebụ - i.e. mgbe bot nwetara mmelite (dịka ọmụmaatụ, ozi sitere na onye ọrụ) site na ihe nkesa telegram ka anyi Yandex ọrụ a ga-eziga arịrịọ (arịrịọ) na data. Nke a bụ ahịrị ị nwere ike mado naanị n'ime adreesị ihe nchọgharị gị wee megharịa ibe ahụ (naanị ị ga-eme nke a otu ugboro): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Anyị ga-anọchi ya {bot_token} ruo akara anyị natara n'aka nna bot mgbe ị na-eke anyị bot, na {webhook_url} - na URL nke anyi Yandex ọrụ. Chere obere oge! Ma RossKomTsenzur machibido ndị na-enye ọrụ na Russian Federation ka ha rụọ adreesị ahụ https://api.telegram.org. Ee, nke ahụ ziri ezi. Ma wepụta ihe. E kwuwerị, ị nwere ike, dịka ọmụmaatụ, jụọ nne nne gị banyere nke a na Ukraine, Israel ma ọ bụ Canada - enweghị "Rosskomcensorship" ebe ahụ, naanị Chineke maara otú ndị mmadụ si ebi ndụ na-enweghị ya. N'ihi ya, nzaghachi arịrịọ mgbe ị na-etinye webhook kwesịrị ịdị ka nke a:

Wulite bot Telegram na Yandex.Cloud

Anyị na-anwale. Ọ kwesịrị "enyo".

Wulite bot Telegram na Yandex.Cloud

Nke a bụ eziokwu. Ekele anyị - ugbua Yandex ọrụ aghọọla telegram-bot!

Echiche mara mma

Ugbu a, ka anyị mee Smart Thinks. Koodu mepere emepe ma dabere na ya GitHub. Akọwara ya nke ọma ma ọ dị naanị otu ahịrị ogologo. Gụọ ya dị ka opera diva libretto!

Wulite bot Telegram na Yandex.Cloud

Mechie oru ngo ma wụnye ndabere:

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

Mee mgbanwe ndị ịchọrọ na faịlụ ahụ index.js (nhọrọ; ịkwesighi ịgbanwe ihe ọ bụla). Mepụta zip- Archive, na faịlụ index.js na nchekwa node_modulu n'ime, dịka ọmụmaatụ, n'okpuru aha smart.zip.

Wulite bot Telegram na Yandex.Cloud

Ugbu a gaa na console anyị Yandex ọrụ, họrọ taabụ Ebe nchekwa ZIP, pịa bọtịnụ Họrọ faịlụ, ma budata ebe nchekwa anyị smart.zip. N'ikpeazụ, na akuku aka nri elu, pịa bọtịnụ Mepụta ụdị.

Wulite bot Telegram na Yandex.Cloud

N'ime sekọnd ole na ole, mgbe emelitere ọrụ ahụ, anyị ga-anwale bot anyị ọzọ. Ugbu a ọ naghịzi “enyo enyo”, mana ọ na-enye echiche smart!

Wulite bot Telegram na Yandex.Cloud

Nke ahụ bụ maka taa. Akụkọ ndị ọzọ na-esochi. Ọ bụrụ na ị nwere mmasị ịgụ nke a, denye aha na amamọkwa gbasara akụkọ ọhụrụ. Ị nwere ike ịdenye aha ebe a, ma ọ bụ na telegram- ọwa Nkuzi IT Zakhar, ma ọ bụ Twitter @mikezaharov.

zoro

Koodu na GitHub
Ọrụ Yandex Cloud
Nchekwa ihe Yandex
Bots: Okwu mmalite maka ndị mmepe
Telegram Bot API

Onyinye

Wulite bot Telegram na Yandex.Cloud

isi: www.habr.com

Tinye a comment