Kuunda bot ya Telegraph katika Yandex.Cloud

Kuunda bot ya Telegraph katika Yandex.Cloud

Leo, kutoka kwa vifaa vya chakavu, tutakusanyika Yandex.Cloud Telegram bot kutumia Kazi za Wingu la Yandex (Au Kazi za Yandex - kwa kifupi) na Hifadhi ya Kitu cha Yandex (Au Hifadhi ya kitu - kwa uwazi). Msimbo utakuwa umewashwa node.js. Walakini, kuna hali moja ya kushangaza - shirika fulani linaloitwa, wacha tuseme, RossKomTsenzur (udhibiti ni marufuku na Kifungu cha 29 cha Katiba ya Shirikisho la Urusi), hairuhusu watoa huduma za mtandao wa Urusi kutuma maombi kwa API ya Telegraph kwa anwani: https://api.telegram.org/. Kweli, hatutafanya - hapana, hapana. Baada ya yote, katika mfuko wetu kuna kinachojulikana. vijiti vya wavuti - kwa msaada wao, hatufanyi maombi kwa anwani maalum, lakini tunatuma ombi letu kama jibu la ombi lolote kwetu. Hiyo ni, kama katika Odessa, tunajibu swali na swali. Ndiyo maana API ya Telegraph haitaonekana kwenye nambari yetu.

KanushoMajina ya mashirika yoyote ya serikali yaliyotajwa katika makala haya ni ya uwongo, na uwezekano wa kupatana na majina ya mashirika halisi ni sadfa.

Kwa hivyo, tutafanya bot ambayo itatupa mawazo mazuri. Hasa kama kwenye picha:

Kuunda bot ya Telegraph katika Yandex.Cloud

Unaweza kujaribu kwa vitendo - hapa ndio jina: @SmartThoughtsBot. Niliona kitufe "Ujuzi wa Alice"? Hii ni kwa sababu roboti ni aina ya "mwenzi" wa roboti ya jina moja. Ustadi wa Alice, i.e. hufanya kazi sawa na Ustadi wa Alice na inawezekana kwamba wataweza kuishi pamoja kwa amani kwa kutangazana. Kuhusu jinsi ya kuunda ujuzi Mawazo Smart ilivyoelezwa katika makala hiyo Alice anapata ujuzi. Sasa (baada ya kufanya mabadiliko kadhaa baada ya kuchapishwa kwa kifungu hapo juu) kwenye smartphone hii ujuzi itaonekana kitu kama hiki:

Kuunda bot ya Telegraph katika Yandex.Cloud

Kuunda roboti

Ningependa somo hili liwe na manufaa kwa kila mtu, pamoja na. na wajenzi wa bot wa novice. Kwa hiyo, katika sehemu hii nitaelezea kwa undani jinsi ya kuunda kwa ujumla telegram'e bots. Kwa wale ambao hawahitaji habari hii, endelea kwa sehemu zifuatazo.

Fungua programu Telegaram, wacha tumwite baba wa roboti zote (wana kila kitu kama watu) - @BatherFather - na kwanza tutampa amri /msaada ili kuburudisha kumbukumbu yake ya kile tunachoweza kufanya. Sasa tutavutiwa na timu / mpya.

Kuunda bot ya Telegraph katika Yandex.Cloud

Kwa kuwa bot iliyoelezwa hapa tayari imeundwa, kwa madhumuni ya maandamano nitaunda bot nyingine kwa muda mfupi (na kisha kuifuta). Nitampigia simu DemoHabrBot. Majina (username) ya roboti zote za telegramu lazima ziishe kwa neno bot, kwa mfano: MyCoolBot au my_cool_bot - hii ni kwa roboti. Lakini kwanza tunaipa bot jina (jina) - na hii ni kwa watu. Jina linaweza kuwa katika lugha yoyote, likajumuisha nafasi, na si lazima limalizie kwa neno bot, na sio lazima hata iwe ya kipekee. Katika mfano huu, niliita bot hii Demo Habr.

Kuunda bot ya Telegraph katika Yandex.Cloud

Sasa chagua jina la bot (username, ile ya roboti). Hebu tumuite DemoHabrBot. Kila kitu kinachohusiana na jina la bot (jina) halihusiani na jina lake hata kidogo - username (au inatumika, lakini kinyume kabisa). Baada ya kuunda kwa mafanikio jina la kipekee la roboti, tunahitaji kunakili na kuhifadhi (kwa ujasiri kabisa!) ishara iliyoonyeshwa kwenye picha ya skrini na mshale mwekundu. Kwa msaada wake baadaye tutaanzisha asili kutoka telegram'webhook wetu Kazi ya Yandex.

Kuunda bot ya Telegraph katika Yandex.Cloud

Sasa wacha tutoe amri kwa baba wa roboti zote: / mybots, na itatuonyesha orodha ya roboti zote ambazo tumeunda. Wacha tuiache roboti mpya iliyookwa pekee kwa sasa Demo Habr (iliundwa ili kuonyesha jinsi ya kuunda roboti, lakini pia tutaitumia leo kwa madhumuni mengine ya maonyesho), na hebu tuangalie roboti. Mawazo ya Smart (@SmartThoughtsBot) Bofya kitufe kilicho na jina lake kwenye orodha ya roboti.

Kuunda bot ya Telegraph katika Yandex.Cloud

Hapa tunaweza kusanidi bot yetu. Kwa kubonyeza kitufe Hariri… Tutaendelea kuhariri chaguo moja au jingine. Kwa mfano, kwa kubofya kifungo Hariri Jina tunaweza kubadilisha jina la bot, sema badala yake Mawazo ya Smart, andika Mawazo ya Kichaa. Picha ya chini - hii ni avatar ya bot, lazima iwe angalau 150 x 150 px. Maelezo - haya ni maelezo mafupi ambayo mtumiaji huona wakati wa kuanzisha bot kwa mara ya kwanza, kama jibu la swali: Kijibu hiki kinaweza kufanya nini? kuhusu - maelezo mafupi zaidi, ambayo hupitishwa kwa kiunga cha roboti (https://t.me/SmartThoughtsBot) au unapotazama habari kuihusu.

Kuunda bot ya Telegraph katika Yandex.Cloud

Tunachotakiwa kufanya ni kuweka amri. Ili kufanya hivyo, bonyeza kitufe Badilisha Amri. Kusawazisha mazoezi ya mtumiaji telegram inapendekeza kutumia amri mbili kila wakati: /anza ΠΈ / msaada, na ikiwa bot inahitaji mipangilio, tumia amri ya ziada /mipangilio. Boti yetu ni rahisi kama mpira, kwa hivyo haihitaji mipangilio yoyote bado. Tunaandika amri mbili za kwanza, ambazo tutazishughulikia kwa nambari. Sasa, ikiwa mtumiaji ataingiza mkwaju (ishara ya kufyeka: /) kwenye uwanja wa kuingiza, orodha ya amri itaonekana kwa uteuzi wa haraka. Kila kitu ni kama kwenye picha: upande wa kushoto - tunaweka amri kupitia bot ya baba; upande wa kulia, amri hizi tayari zinapatikana kwa watumiaji katika roboti yetu.

Kuunda bot ya Telegraph katika Yandex.Cloud

Kazi ya Yandex

Sasa kwa kuwa bot yetu imeundwa, wacha tuende Yandex.Cloudkuunda chaguo la kukokotoa ambalo litafanya msimbo wetu wa roboti. Ikiwa haujafanya kazi na Yandex.Cloud soma nyenzo Alice katika Ardhi ya Bitrix, na kisha - Kazi za Yandex kutuma barua. Nina hakika kwamba nakala hizi mbili fupi zitakuwa za kutosha kwako kuwa na ufahamu wa kimsingi wa somo.

Kwa hivyo kwenye koni Yandex.Cloud katika menyu ya kusogeza ya kushoto chagua kipengee Kazi za Wingu, na kisha bonyeza kitufe Unda kipengele cha kukokotoa. Tunatoa jina na maelezo mafupi kwa sisi wenyewe.

Kuunda bot ya Telegraph katika Yandex.Cloud

Baada ya kubonyeza kitufe kujenga na baada ya sekunde chache, kazi mpya itaonekana kwenye orodha ya vitendaji vyote. Bonyeza kwa jina lake - hii itatupeleka kwenye ukurasa Pitia kazi yetu. Hapa unahitaji kuwezesha (On) kubadili Shughuli ya ummaili iweze kupatikana kutoka kwa nje (kwa Yandex.Cloud) ya dunia, na maana ya mashamba Kiungo cha simu ΠΈ Kitambulisho - weka siri sana kutoka kwa kila mtu isipokuwa wewe mwenyewe na Telegramu, ili kazi yako isiweze kuitwa na walaghai mbalimbali.

Kuunda bot ya Telegraph katika Yandex.Cloud

Sasa, kwa kutumia menyu ya kushoto, nenda kwa Mhariri kazi. Hebu tuweke kando kwa muda wetu Mawazo ya Smart, na uunda kazi ndogo ya template ili kuangalia utendaji wa bot yetu ... Hata hivyo, katika muktadha huu, kazi hii ni bot yetu ... Kwa kifupi, sasa na hapa tutafanya bot rahisi ambayo "itakuwa kioo" ( yaani send back ) maombi ya mtumiaji. Kiolezo hiki kinaweza kutumika kila wakati wakati wa kuunda roboti mpya za telegramu ili kuhakikisha kuwa mawasiliano nayo Telegramu'ohm inafanya kazi vizuri. Bofya Unda faili, tuite index.js, na mtandaoni Mhariri wa kanuni bandika nambari ifuatayo kwenye faili hii:

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

Kwenye koni ya Yandex.Cloud inapaswa kuonekana kama hii:

Kuunda bot ya Telegraph katika Yandex.Cloud

Zaidi hapa chini tunaashiria Sehemu ya kuingilia - index.botAmbapo index hili ndilo jina la faili (index.js), na bot - jina la kazi (module.exports.bot) Acha sehemu zingine zote kama zilivyo, na ubofye kitufe kwenye kona ya juu kulia Unda toleo. Katika sekunde chache toleo hili la chaguo la kukokotoa litaundwa. Mara baada ya kupima mtandao, tutaunda toleo jipya - Mawazo ya Smart.

Kuunda bot ya Telegraph katika Yandex.Cloud

Hifadhi ya kitu

Sasa kwa kuwa tumeunda Kazi ya Yandex, njoo, tukiwa kwenye koni Yandex.Cloud, tuunde kinachojulikana ndoo (ndoo, i.e. ndoo kwa Kirusi, sio bouti kabisa) kwa kuhifadhi faili za picha ambazo zitatumika kwenye bot yetu. Mawazo ya Smart. Katika menyu ya urambazaji ya kushoto chagua kipengee Uhifadhi wa Kitu, bonyeza kitufe Tengeneza ndoo, kuja na jina lake, kwa mfano, ndoo ya img, na muhimu zaidi, Ufikiaji wa kusoma kwa vitu Tunaiweka hadharani - vinginevyo Telegramu haitaona picha zetu. Tunaacha nyanja zingine zote bila kubadilika. Bonyeza kitufe Tengeneza ndoo.

Kuunda bot ya Telegraph katika Yandex.Cloud

Baada ya hayo, orodha ya ndoo zote inaweza kuonekana kama hii (ikiwa hii ndio ndoo yako pekee):

Kuunda bot ya Telegraph katika Yandex.Cloud

Sasa ninapendekeza kubonyeza jina la ndoo na kuunda folda ndani yake ili kupanga uhifadhi wa picha kwa programu zako tofauti. Kwa mfano, kwa bot ya telegram Mawazo ya Smart Niliunda folda inayoitwa tg-bot-smart-mawazo (hakuna chochote, nitaelewa nambari hii). Unda moja pia.

Kuunda bot ya Telegraph katika Yandex.Cloud

Sasa unaweza kubofya jina la folda, ingia ndani yake na upakie faili:

Kuunda bot ya Telegraph katika Yandex.Cloud

Na kwa kubofya jina la faili - pata URL kwa matumizi katika bot yetu, na kwa ujumla - popote (lakini usichapishe hii URL sio lazima, kwani trafiki kutoka Hifadhi ya kitu kushtakiwa).

Kuunda bot ya Telegraph katika Yandex.Cloud

Hiyo ni kimsingi yote kuna yake Hifadhi ya kitu. Sasa utajua cha kufanya unapoona kidokezo cha kupakia faili hapo.

Mtandao

Sasa tutaweka mtandao -yaani. wakati bot inapokea sasisho (kwa mfano, ujumbe kutoka kwa mtumiaji) kutoka kwa seva telegram kwetu Kazi ya Yandex ombi litatumwa (kuomba) na data. Hapa kuna mstari ambao unaweza kubandika kwenye uga wa anwani ya kivinjari chako kisha uonyeshe upya ukurasa (lazima ufanye hivi mara moja tu): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Tutabadilisha tu {bot_token} kwa ishara tuliyopokea kutoka kwa baba bot wakati wa kuunda bot yetu, na {webhook_url} - imewashwa URL yetu Kazi za Yandex. Subiri kidogo! Lakini RossKomTsenzur inakataza watoa huduma katika Shirikisho la Urusi kuhudumia anwani https://api.telegram.org. Ndiyo hiyo ni sahihi. Lakini kuja na kitu. Baada ya yote, unaweza, kwa mfano, kuuliza bibi yako juu ya hii huko Ukraine, Israeli au Kanada - hakuna "Rosskomcensorship" huko, na Mungu anajua tu jinsi watu wanaishi bila hiyo. Kama matokeo, jibu la ombi wakati wa kusakinisha webhook inapaswa kuonekana kama hii:

Kuunda bot ya Telegraph katika Yandex.Cloud

Tunajaribu. Inapaswa "kioo".

Kuunda bot ya Telegraph katika Yandex.Cloud

Hii ni kweli. Pongezi zetu - sasa Kazi ya Yandex imekuwa telegram-boti!

Mawazo ya Smart

Sasa tufanye Mawazo Mahiri. Nambari imefunguliwa na iko GitHub. Imetolewa maoni vizuri na ina urefu wa mistari mia moja tu. Isome kama opera diva libretto!

Kuunda bot ya Telegraph katika Yandex.Cloud

Funga mradi na usakinishe utegemezi:

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

Fanya mabadiliko unayohitaji kwenye faili index.js (hiari; sio lazima ubadilishe chochote). Unda zip-hifadhi, na faili index.js na folda moduli za moduli ndani, kwa mfano, chini ya jina smart.zip.

Kuunda bot ya Telegraph katika Yandex.Cloud

Sasa nenda kwa koni kwa yetu Kazi za Yandex, chagua kichupo Kumbukumbu ya ZIPbonyeza kitufe Chagua faili, na kupakua kumbukumbu zetu smart.zip. Hatimaye, kwenye kona ya juu ya kulia, bofya kifungo Unda toleo.

Kuunda bot ya Telegraph katika Yandex.Cloud

Katika sekunde chache, kazi inaposasishwa, tutajaribu bot yetu tena. Sasa yeye sio "vioo" tena, lakini hutoa mawazo ya busara!

Kuunda bot ya Telegraph katika Yandex.Cloud

Ni hayo tu kwa leo. Makala zaidi yanafuata. Ikiwa ungependa kusoma hili, jiandikishe kwa arifa kuhusu makala mpya. Unaweza kujiandikisha hapa, au kwa telegram-kituo Mafunzo ya IT ZakharAu Twitter @mikezaharov.

marejeo

Rekodi kwenye GitHub
Kazi za Wingu la Yandex
Hifadhi ya Kitu cha Yandex
Vijibu: Utangulizi kwa watengenezaji
Telegram Bot API

Michango

Kuunda bot ya Telegraph katika Yandex.Cloud

Chanzo: mapenzi.com

Kuongeza maoni