Loni, lati awọn ohun elo aloku, a yoo pejọ https://api.telegram.org/
. O dara, a kii yoo - rara, rara. Lẹhinna, ninu apo wa ti a npe ni. webhooks - pẹlu iranlọwọ wọn, a ko ṣe awọn ibeere si adirẹsi kan pato, ṣugbọn nirọrun firanṣẹ ibeere wa bi idahun si eyikeyi ibeere si wa. Iyẹn ni, bi ni Odessa, a dahun ibeere kan pẹlu ibeere kan. Iyẹn ni idi Telegram API kii yoo han ninu koodu wa.
AlAIgBAAwọn orukọ ti eyikeyi awọn ajọ ijọba ti a mẹnuba ninu nkan yii jẹ arosọ, ati pe awọn ibaamu ti o ṣeeṣe pẹlu awọn orukọ ti awọn ajọ aye gidi jẹ ijamba.
Nitorinaa, a yoo ṣe bot ti yoo pese wa pẹlu awọn ero ọlọgbọn. Gangan bi ninu aworan:
O le gbiyanju rẹ ni iṣe - eyi ni orukọ: @SmartThoughtsBot. Ṣe akiyesi bọtini naa "Ogbon Alice"? Eyi jẹ nitori bot jẹ iru "alabaṣepọ" fun bot ti orukọ kanna. Alice ká olorijori, i.e. o ṣe awọn iṣẹ kanna bi Alice ká olorijori ati pe o ṣee ṣe pe wọn yoo ni anfani lati gbe ni alaafia nipasẹ ipolowo ara wọn. Nipa bi o ṣe le ṣẹda olorijori Smart ero a sapejuwe ninu awọn article
Ṣiṣẹda bot
Emi yoo fẹ ikẹkọ yii lati wulo fun gbogbo eniyan, pẹlu. ati alakobere bot ọmọle. Nitorina, ni apakan yii Emi yoo ṣe apejuwe ni diẹ ninu awọn apejuwe bi o ṣe le ṣẹda ni apapọ Telegramawọn bot. Fun awọn ti ko nilo alaye yii, tẹsiwaju si awọn apakan atẹle.
Ṣii ohun elo naa Telegaram, jẹ ki a pe baba gbogbo awọn bot (wọn ni ohun gbogbo bi eniyan) - @BotBaba - ati ni akọkọ a yoo fun u ni aṣẹ / iranlọwọ lati sọ iranti rẹ di ohun ti a le ṣe. Bayi a yoo nifẹ ninu ẹgbẹ naa / newbot.
Niwọn igba ti bot ti a ṣalaye nibi ti ṣẹda tẹlẹ, fun awọn idi ifihan Emi yoo ṣẹda bot miiran fun igba diẹ (ati lẹhinna paarẹ). Emi yoo pe e DemoHabrBot. Awọn orukọ (olumulo) ti gbogbo awọn bot telegram gbọdọ pari pẹlu ọrọ naa botfun apẹẹrẹ: MyCoolBot tabi bot_mi_mi - Eyi jẹ fun awọn bot. Ṣugbọn akọkọ a fun bot orukọ kan (orukọ) - ati pe eyi jẹ fun eniyan. Orukọ le wa ni eyikeyi ede, ni awọn aaye ninu, ko si ni lati pari pẹlu ọrọ kan bot, ati pe ko paapaa ni lati jẹ alailẹgbẹ. Ni apẹẹrẹ yii, Mo pe bot yii Ririnkiri Habr.
Bayi yan orukọ kan fun bot (olumulo, ọkan fun awọn bot). Jẹ́ ká pè é DemoHabrBot. Ohun gbogbo ti o ni ibatan si orukọ bot (orukọ) ko ni ibatan si orukọ rẹ rara - olumulo (tabi kan, ṣugbọn gangan idakeji). Lẹhin ṣiṣẹda aṣeyọri orukọ bot alailẹgbẹ, a nilo lati daakọ ati fipamọ (ni igbẹkẹle to muna!) Aami ti o han ni sikirinifoto pẹlu itọka pupa kan. Pẹlu awọn oniwe-iranlọwọ a yoo nigbamii fi idi awọn ti ipilẹṣẹ lati Telegram'a webhook si wa Yandex iṣẹ.
Bayi jẹ ki a fun ni aṣẹ fun baba gbogbo awọn bot: /mybots, ati pe yoo fihan wa akojọ kan ti gbogbo awọn bot ti a ti ṣẹda. Jẹ ki a fi bot tuntun ti a yan silẹ nikan fun bayi Ririnkiri Habr (o ṣẹda lati ṣafihan bi o ṣe le ṣẹda awọn bot, ṣugbọn a yoo tun lo loni fun awọn idi ifihan miiran), ati jẹ ki a wo bot naa. Awọn ero Smart (@SmartThoughtsBot). Tẹ bọtini pẹlu orukọ rẹ ninu atokọ ti awọn botilẹtẹ.
Nibi a le tunto bot wa. Nipa titẹ bọtini Ṣatunṣe… A yoo lọ siwaju si ṣiṣatunṣe ọkan tabi aṣayan miiran. Fun apẹẹrẹ, nipa tite lori bọtini Orukọ Ṣatunkọ a le yi awọn orukọ ti awọn bot, wi dipo Awọn ero Smart, kọ Awọn imọran irikuri. Botpic - Eyi ni avatar bot, gbọdọ jẹ o kere ju 150 x 150 px. Apejuwe - Eyi jẹ apejuwe kukuru ti olumulo rii nigbati o bẹrẹ bot fun igba akọkọ, bi idahun si ibeere naa: Kini bot le ṣe? Nipa - apejuwe ani kukuru, eyiti o tan kaakiri pẹlu ọna asopọ si bot (https://t.me/SmartThoughtsBot
) tabi nigba wiwo alaye nipa rẹ.
Gbogbo ohun ti a ni lati ṣe ni ṣeto awọn aṣẹ. Lati ṣe eyi, tẹ bọtini naa Ṣatunkọ Àsẹ. Lati standardize olumulo iwa Telegram ṣe iṣeduro nigbagbogbo lilo awọn aṣẹ meji: / bẹrẹ и / Egba Mi O, ati pe ti bot ba nilo awọn eto, lo aṣẹ afikun / awọn eto. Bot wa jẹ rọrun bi bọọlu, nitorinaa ko nilo awọn eto eyikeyi sibẹsibẹ. A kọ awọn aṣẹ meji akọkọ, eyiti a yoo ṣe ilana ni koodu. Bayi, ti olumulo ba wọ inu idinku (ami slash: /) ni aaye titẹ sii, atokọ ti awọn aṣẹ yoo han fun yiyan iyara. Ohun gbogbo jẹ bi ninu aworan: ni apa osi - a fi awọn aṣẹ nipasẹ baba bot; ni apa ọtun, awọn aṣẹ wọnyi wa tẹlẹ fun awọn olumulo ninu bot wa.
Yandex iṣẹ
Bayi pe a ti ṣẹda bot wa, jẹ ki a lọ si Yandex.Cloudlati ṣẹda iṣẹ kan ti yoo ṣiṣẹ koodu bot wa. Ti o ko ba ti ṣiṣẹ pẹlu Yandex.Cloud ka ohun elo
Nitorina ninu console Yandex.Cloud ninu akojọ aṣayan lilọ kiri osi yan ohun kan Awọn iṣẹ Awọsanma, ati lẹhinna tẹ bọtini naa Ṣẹda iṣẹ kan. A fun ni orukọ ati apejuwe kukuru fun ara wa.
Lẹhin titẹ bọtini naa Ṣẹda ati lẹhin iṣẹju-aaya meji, iṣẹ tuntun yoo han ninu atokọ ti gbogbo awọn iṣẹ. Tẹ orukọ rẹ - eyi yoo mu wa lọ si oju-iwe naa Akopọ iṣẹ wa. Nibi o nilo lati mu ṣiṣẹ (On) yipada Àkọsílẹ iṣẹki o di wiwọle lati ita (fun Yandex.Cloud) ti aye, ati itumọ awọn aaye Ipe ọna asopọ и Idanimọ - tọju rẹ ni aṣiri jinna lati ọdọ gbogbo eniyan ayafi ararẹ ati Telegram, ki iṣẹ rẹ ko le pe nipasẹ ọpọlọpọ awọn scammers.
Bayi, ni lilo akojọ aṣayan osi, lọ si Olootu awọn iṣẹ. Jẹ ki a fi ara wa silẹ fun iṣẹju kan Awọn ero Smart, ki o si ṣẹda iṣẹ awoṣe ti o kere ju lati ṣayẹwo iṣẹ-ṣiṣe ti bot wa ... Sibẹsibẹ, ni aaye yii, iṣẹ yii jẹ bot wa ... Ni kukuru, bayi ati ni ibi yii a yoo ṣe bot ti o rọrun ti yoo "digi" ( ie firanṣẹ pada ) awọn ibeere olumulo. Awoṣe yii le ṣee lo nigbagbogbo nigbati o ṣẹda awọn bot telegram tuntun lati rii daju pe ibaraẹnisọrọ pẹlu Telegram'ohm ṣiṣẹ daradara. Tẹ Ṣẹda faili, jẹ ki a pe atọka.js, ati lori ayelujara Olootu koodu lẹ koodu atẹle yii sinu faili yii:
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
};
};
Ninu console Yandex.Cloud o yẹ ki o dabi iru eyi:
Siwaju ni isalẹ a tọkasi Aaye titẹsi - atọka.botnibo Ìwé Eyi ni orukọ faili (atọka.js), ṣugbọn bot - orukọ iṣẹ (module.exports.bot). Fi gbogbo awọn aaye miiran silẹ bi o ṣe jẹ, ki o tẹ bọtini ni igun apa ọtun oke Ṣẹda ti ikede. Ni iṣẹju diẹ ti ikede iṣẹ naa yoo ṣẹda. Laipẹ lẹhin idanwo webhook, a yoo ṣẹda titun kan ti ikede - Awọn ero Smart.
Ibi ipamọ nkan
Bayi ti a ti ṣẹda Yandex iṣẹ, wa lori, nigba ti a ba wa ni console Yandex.Cloud, jẹ ki ká ṣẹda awọn ti a npe ni garawa (garawa, i.e. garawa ni Russian, kii ṣe oorun didun rara) fun titoju awọn faili aworan ti yoo ṣee lo ninu bot wa Awọn ero Smart. Ninu akojọ aṣayan lilọ kiri osi yan ohun kan Ibi apamọ, tẹ bọtini naa Ṣẹda garawa kan, wá pẹlu orukọ kan fun, fun apẹẹrẹ, img-garawaati, pataki julọ, Ka wiwọle si awọn nkan A jẹ ki o wa ni gbangba - bibẹẹkọ Telegram kii yoo rii awọn aworan wa. A fi gbogbo awọn aaye miiran silẹ ko yipada. Tẹ bọtini naa Ṣẹda garawa kan.
Lẹhin eyi, atokọ ti gbogbo awọn garawa le dabi iru eyi (ti eyi ba jẹ garawa rẹ nikan):
Bayi Mo daba tite lori orukọ ti garawa ati ṣiṣẹda folda kan ninu rẹ lati ṣeto ibi ipamọ ti awọn aworan fun awọn ohun elo oriṣiriṣi rẹ. Fun apẹẹrẹ, fun bot telegram kan Awọn ero Smart Mo ṣẹda folda ti a pe tg-bot-ọlọgbọn-ero (ko si ohun, Emi yoo ye yi koodu). Ṣẹda ọkan paapaa.
Bayi o le tẹ orukọ folda, lọ sinu rẹ ki o gbe awọn faili:
Ati nipa tite lori orukọ faili - gba URL fun lilo ninu bot wa, ati ni gbogbogbo - nibikibi (ṣugbọn ko ṣe atẹjade eyi URL kobojumu, niwon ijabọ lati Ibi ipamọ nkan gba agbara).
Ti o ni besikale gbogbo nibẹ ni lati o Ibi ipamọ nkan. Bayi iwọ yoo mọ kini lati ṣe nigbati o ba rii itọsi lati gbe awọn faili sibẹ.
Webhook
Bayi a yoo fi sori ẹrọ webhook - i.e. nigbati bot ba gba imudojuiwọn (fun apẹẹrẹ, ifiranṣẹ lati ọdọ olumulo) lati olupin naa Telegram si wa Yandex iṣẹ ìbéèrè yoo wa ni rán (ìbéèrè) pẹlu data. Eyi ni laini kan ti o le rọrun lẹẹmọ sinu aaye adirẹsi aṣawakiri rẹ lẹhinna sọ oju-iwe naa sọ (o ni lati ṣe eyi ni ẹẹkan): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
A kan yoo paarọ rẹ {bot_token} si aami ti a gba lati baba bot nigba ti o ba ṣẹda wa bot, ati {webhook_url} - lori URL wa Awọn iṣẹ Yandex. Duro fun iseju kan! Sugbon RossKomTsenzur ṣe idiwọ awọn olupese ni Russian Federation lati ṣiṣẹ adirẹsi naa https://api.telegram.org
. Beeni ooto ni. Ṣugbọn wá soke pẹlu nkankan. Lẹhin gbogbo ẹ, o le, fun apẹẹrẹ, beere lọwọ iya-nla rẹ nipa eyi ni Ukraine, Israeli tabi Canada - ko si “Rosskomcensorship” nibẹ, ati pe Ọlọrun nikan mọ bi eniyan ṣe n gbe laisi rẹ. Bi abajade, idahun ibeere nigba fifi sori ẹrọ wẹẹbu yẹ ki o dabi eyi:
A n danwo. O yẹ ki o "digi".
Eyi jẹ otitọ. Oriire wa - ni bayi Yandex iṣẹ di Telegram- bot!
Awọn ero Smart
Bayi jẹ ki ká ṣe Smart ero. Awọn koodu ti wa ni sisi ati ki o dubulẹ lori
Di iṣẹ akanṣe naa ki o fi awọn igbẹkẹle sii:
git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i
Ṣe awọn ayipada ti o nilo si faili naa atọka.js (aṣayan; o ko ni lati yi ohunkohun pada). Ṣẹda zip- pamosi, pẹlu faili atọka.js ati folda node_modulu inu, fun apẹẹrẹ, labẹ awọn orukọ smart.zip.
Bayi lọ si console si wa Awọn iṣẹ Yandex, yan taabu ZIP pamosi, tẹ bọtini naa Yan faili kan, ati gba lati ayelujara wa pamosi smart.zip. Ni ipari, ni igun apa ọtun oke, tẹ bọtini naa Ṣẹda ti ikede.
Ni iṣẹju diẹ, nigbati iṣẹ naa ba ti ni imudojuiwọn, a yoo tun ṣe idanwo bot wa lẹẹkansi. Bayi o ko si ohun to "digi", ṣugbọn gbà smati ero!
Iyẹn ni gbogbo fun oni. Awọn nkan diẹ sii tẹle. Ti o ba nifẹ lati ka eyi, ṣe alabapin si awọn iwifunni nipa awọn nkan tuntun. O le ṣe alabapin nibi, tabi ni Telegram-ikanni
jo
Awọn ẹbun
orisun: www.habr.com