Í dag munum við safna inn úr spunaefnum https://api.telegram.org/
. Jæja, við gerum það ekki - nei, nei. Reyndar, í töskunni okkar eru svokölluð. vefkrókar - með þeirra hjálp sendum við ekki beiðnir á ákveðið heimilisfang, heldur sendum við beiðni okkar sem svar við hvers kyns beiðni til okkar. Það er, eins og í Odessa - við svörum spurningu með spurningu. Þess vegna Telegram API mun ekki birtast í kóðanum okkar.
FyrirvariNöfn allra ríkisstofnana sem nefnd eru í þessari grein eru uppdiktuð og hugsanlegar tilviljanir við nöfn raunverulegra stofnana eru tilviljun.
Svo, við munum búa til vélmenni sem mun veita okkur snjallar hugsanir. Nákvæmlega eins og á myndinni:
Þú getur prófað það í verki - hér er nafnið: @SmartThoughtsBot. Taktu eftir takkanum "Hæfi Alice"? Þetta er vegna þess að botninn er eins konar "félagi" fyrir samnefndan Hæfni Alice, þ.e. það sinnir sömu aðgerðum og Hæfni Alice og, ef til vill, að þeir geti lifað friðsamlega saman með því að auglýsa hvort annað. Um hvernig á að búa til Snjall hugsunarhæfileiki lýst í greininni
Bot sköpun
Ég myndi vilja að þessi kennsla nýtist öllum, þ.m.t. og byrjendur "bot smiðir". Þess vegna mun ég í þessum kafla lýsa í smáatriðum hvernig á að búa til almennt í Telegram'e bots. Fyrir þá sem ekki þurfa þessar upplýsingar, haldið áfram í næstu kafla.
Opnaðu forritið Telegaram, við köllum föður allra vélmenna (þeir hafa allt eins og fólk) - @BotFather - og til að byrja með munum við gefa honum / hjálpa skipunina til að hressa upp á minni okkar um hvað við getum gert. Núna höfum við áhuga á liðinu / newbot.
Þar sem botninn sem lýst er hér hefur þegar verið búinn til, í sýnikennsluskyni mun ég búa til annan vélmenni í stuttan tíma (þá mun ég eyða honum). Ég hringi í hann DemoHabrBot. Nöfn (notandanafn) allir símskeyti bottar verða að enda á orði láni, til dæmis: MyCoolBot eða my_cool_bot Þetta er fyrir vélmenni. En fyrst, gefðu botninum nafn (nafn) er fyrir fólk. Nafnið getur verið á hvaða tungumáli sem er, innihaldið bil, þarf ekki að enda á orði láni, og þarf ekki einu sinni að vera einstakt. Í þessu dæmi kallaði ég þetta bot Demo Habr.
Veldu nú nafn fyrir botninn (notandanafn, sá fyrir vélmenni). Við skulum kalla það DemoHabrBot. Allt sem tengist nafni botnsins (nafn) er alls ekki tengt nafni hans - notandanafn (eða á við, en einmitt öfugt). Eftir að hafa búið til einstakt botnafn, þurfum við að afrita og vista (í fyllsta trúnaði!) táknið sem sýnt er á skjámyndinni með rauðri ör. Með hjálp þess munum við síðar setja upp sendan Telegram'a webhook til okkar Yandex virka.
Og nú munum við gefa föður allra botna skipunina: /mybotsog það mun sýna okkur lista yfir alla vélmenni sem við höfum búið til. Látum nýbakaða botninn í friði í bili Demo Habr (það var búið til til að sýna hvernig á að búa til vélmenni, en við munum nota það í dag í öðrum sýnikennslu tilgangi), og íhuga vélmenni Snjallar hugsanir (@SmartThoughtsBot). Smelltu á hnappinn með nafni hans á listanum yfir vélmenni.
Þetta er þar sem við getum sett upp botni okkar. Að ýta á takka Breyta ... við munum halda áfram að breyta einum eða öðrum valkosti. Til dæmis með því að smella á hnappinn Breyttu nafni við getum breytt nafni botnsins, segjum í staðinn fyrir Snjallar hugsanir, skrifa geggjaðar hugmyndir. Botpic - þetta er avatar vélmannsins, verður að vera að minnsta kosti 150 x 150 px. Lýsing er stutt lýsing sem notandinn sér þegar botninn er ræstur í fyrsta skipti, sem svar við spurningunni: Hvað getur þessi botni gert? Um okkur - enn styttri lýsing, sem er send með hlekk á botni (https://t.me/SmartThoughtsBot
) eða þegar þú skoðar upplýsingar um það.
Við þurfum bara að setja upp skipanirnar. Til að gera þetta, ýttu á hnappinn Breyta skipunum. Að staðla starfshætti notenda Telegram mælir með því að nota alltaf tvær skipanir: / byrja и / hjálp, og ef botninn þarfnast stillingar, viðbótarskipun /settings. Botni okkar er eins einfalt og bolti, svo það þarf engar stillingar ennþá. Við skrifum fyrstu tvær skipanirnar sem við munum síðan vinna í kóðanum. Nú, ef notandinn slær inn skástrik (skástrik: /) í innsláttarreitinn, mun listi yfir skipanir birtast fyrir fljótlegt val þeirra. Allt er eins og á myndinni: til vinstri - við setjum skipanir í gegnum bot-faðirinn; til hægri eru þessar skipanir nú þegar aðgengilegar notendum í botni okkar.
Yandex virka
Nú þegar botninn okkar hefur verið búinn til skulum við fara í Yandex.Cloudtil að búa til aðgerð sem mun keyra lánakóðann okkar. Ef þú hefur ekki unnið með Yandex.Cloud lesa efnið
Svo í vélinni Yandex.Clouds í vinstri yfirlitsvalmyndinni skaltu velja hlutinn Aðgerðir skýja, og ýttu síðan á hnappinn Búðu til aðgerð. Við gefum því nafn, og fyrir okkur sjálf - stutt lýsing.
Eftir að hafa ýtt á hnappinn búa til og eftir nokkrar sekúndur mun nýja aðgerðin birtast á listanum yfir allar aðgerðir. Smelltu á nafnið hennar - þetta færir okkur á síðuna Skoða hlutverk okkar. Hér þarftu að virkjaOn) skipta opinbert hlutverktil að gera það aðgengilegt frá ytri (fyrir Yandex.Clouds) heimsins, og verðmæti túnanna Tengill til að hringja и Auðkenni - Haltu því leyndu fyrir öllum nema þér og Telegram, svo að ýmsir svindlarar geti ekki hringt í hlutverk þitt.
Notaðu nú vinstri valmyndina til að fara í Ritstjóri aðgerðir. Við skulum leggja til hliðar um stund okkar Snjallar hugsanir, og búðu til lágmarks sniðmátsaðgerð til að athuga frammistöðu vélmennisins okkar ... Hins vegar, í þessu samhengi, er þessi aðgerð okkar vélmenni ... Í stuttu máli, núna og hér, munum við búa til einfaldasta vélmanninn sem mun „spegla“ ( sendu til baka) notendabeiðnir. Þetta sniðmát er alltaf hægt að nota þegar þú býrð til nýja símskeyti vélmenni til að tryggja að samskipti við Telegram'om virkar fínt. Smellur Búa til skrá, kallaðu það index.js, og á netinu Kóðaritill límdu eftirfarandi kóða inn í þessa skrá:
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
};
};
Í Yandex.Cloud stjórnborðinu ætti það að líta einhvern veginn svona út:
Hér að neðan vísum við til innkomustaður - index.bothvar Vísitala þetta er skráarnafnið (index.js), og láni - heiti aðgerða (module.exports.bot). Skildu eftir alla aðra reiti „eins og er“ og smelltu á hnappinn í efra hægra horninu Búa til útgáfu. Eftir nokkrar sekúndur verður þessi útgáfa af aðgerðinni búin til. Fljótlega eftir próf vefhook, munum við búa til nýja útgáfu − Snjallar hugsanir.
Hlutageymsla
Nú þegar við höfum sett upp Yandex virkaförum á meðan við erum í stjórnborðinu Yandex.Clouds, búa til svokallaða. fötu (fötu, þ.e. fötu á rússnesku, alls ekki vönd) til að geyma myndaskrár sem verða notaðar í botni okkar Snjallar hugsanir. Veldu úr vinstri yfirlitsvalmyndinni Object Bílskúr, Ýttu á takkann Búðu til fötu, gefðu því nafn, til dæmis, img-fötu, og síðast en ekki síst, Lesaðgangur að hlutum gerðu það opinbert - annars mun Telegram ekki sjá myndirnar okkar. Allir aðrir reitir eru óbreyttir. Við ýtum á hnappinn Búðu til fötu.
Eftir það gæti listi yfir allar fötur litið svona út (ef þetta er eina fötuna þín):
Nú legg ég til að smella á heitið á fötunni og búa til möppu inni í henni til að skipuleggja geymslu mynda fyrir mismunandi forrit. Til dæmis fyrir símskeyti vélmenni Snjallar hugsanir ég bjó til möppu sem heitir tg-bot-snjall-hugsanir (Ekkert, ég mun skilja þetta dulmál). Búðu til einn líka.
Nú geturðu smellt á möppuna, farið inn í það og hlaðið upp skrám:
Og smelltu á skráarnafnið - fáðu það URL til notkunar í botni okkar, og almennt - hvar sem er (en ekki birta þetta URL að óþörfu, þar sem umferð frá geymsla hluta gjaldfærður).
Hér er það í rauninni allt og sumt geymsla hluta. Nú munt þú vita hvað þú átt að gera þegar þú sérð hvetja um að hlaða upp skrám þangað.
Webhook
Nú munum við setja upp vefhook — þ.e. þegar vélmenni fær uppfærslu (til dæmis skilaboð frá notanda), frá þjóninum Telegram inn í okkar Yandex virka beiðni verður sendóska eftir) með gögnum. Hér er strengur sem þú getur einfaldlega límt inn í heimilisfangsreit vafrans og síðan endurnýjað síðuna (það þarf aðeins að gera einu sinni): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Skiptu bara um {bot_token} til táknsins sem við fengum frá föðurbotninum þegar við bjuggum til botninn okkar, og {webhook_url} - áfram URL okkar Yandex aðgerðir. Bíddu aðeins! En RossKomRitskoðun bannar veitendum í Rússlandi að afhenda heimilisfangið https://api.telegram.org
. Já það er rétt. En þér dettur eitthvað í hug. Þegar öllu er á botninn hvolft geturðu, til dæmis, spurt ömmu þína um það í Úkraínu, Ísrael eða Kanada - það eru engin „rússnesk ritskoðun“ þar og aðeins Guð veit hvernig fólk lifir án hennar. Þess vegna ætti beiðni-svarið við uppsetningu á vefhook að líta svona út:
Prófanir. Ætti að vera speglaður.
Þetta er satt. Hamingjuóskir okkar - núna Yandex virka hefur orðið Telegram-bot!
Snjallar hugsanir
Og nú gerum við Smart Thoughts. Kóðinn er opinn og og liggur á
Klónaðu verkefnið og settu upp ósjálfstæðin:
git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i
Gerðu þær breytingar sem þú þarft á skránni index.js (valfrjálst; þú getur ekki breytt neinu). Búa til Zip-skjalasafn, með skrá index.js og möppu hnútamódel inni, til dæmis, heitir smart.zip.
Farðu nú í stjórnborðið til okkar Yandex aðgerðir, veldu flipann ZIP skjalasafn, Ýttu á takkann Veldu skráog hlaðið niður skjalasafninu okkar smart.zip. Að lokum, í efra hægra horninu, smelltu á hnappinn Búa til útgáfu.
Eftir nokkrar sekúndur, þegar aðgerðin er uppfærð, munum við prófa botann okkar aftur. Nú „speglar hann“ ekki lengur heldur skilar snjöllum hugsunum!
Það er allt í dag. Aðrar greinar fylgja. Ef þú hefur áhuga á að lesa þetta skaltu gerast áskrifandi að tilkynningum um nýjar greinar. Hægt er að gerast áskrifandi hér eða Telegram-rás
tilvísanir
Framlög
Heimild: www.habr.com