Illum, minn materjali skreppjati, se niġbru https://api.telegram.org/
. Ukoll, aħna mhux se - le, le. Wara kollox, fil-borża tagħna hemm hekk imsejħa. webhooks — bl-għajnuna tagħhom, aħna ma nagħmlux talbiet lil indirizz speċifiku, iżda sempliċement nibagħtu t-talba tagħna bħala tweġiba għal kwalunkwe talba lilna. Jiġifieri, bħal f'Odessa, aħna nwieġbu mistoqsija b'mistoqsija. Għalhekk Telegram API mhux se jidher fil-kodiċi tagħna.
ĊaħdaL-ismijiet ta 'kwalunkwe organizzazzjonijiet tal-gvern imsemmija f'dan l-artikolu huma fittizji, u taqbiliet possibbli ma' l-ismijiet ta 'organizzazzjonijiet tal-ħajja reali huma koinċidenza.
Għalhekk, aħna se nagħmlu bot li jagħtina ħsibijiet intelliġenti. Eżattament bħal fl-istampa:
Tista' tipprovaha fl-azzjoni - hawn hu l-isem: @SmartThoughtsBot. Innutat il-buttuna "Il-Ħila ta' Alice"? Dan għaliex il-bot huwa tip ta '"kumpann" għall-bot tal-istess isem. Il-ħila ta’ Alice, i.e. iwettaq l-istess funzjonijiet bħal Il-ħila ta’ Alice u jista’ jkun li jkunu jistgħu jikkoeżistu b’mod paċifiku billi jirreklamaw lil xulxin. Dwar kif toħloq ħiliet Ħsibijiet Intelliġenti deskritt fl-artiklu
Ħolqien ta' bot
Nixtieq li dan it-tutorja jkun utli għal kulħadd, inkl. u bennejja bot novizzi. Għalhekk, f'din it-taqsima ser niddeskrivi f'xi dettall kif toħloq b'mod ġenerali Telegramma'e bots. Għal dawk li ma jeħtiġux din l-informazzjoni, ipproċedi għat-taqsimiet li ġejjin.
Iftaħ l-applikazzjoni Telegaram, ejja nsejħu lill-missier tal-bots kollha (għandhom kollox bħal nies) - @BotFather - u l-ewwel nagħtuh il-kmand /help biex iġedded il-memorja tiegħu ta’ dak li nistgħu nagħmlu. Issa se nkunu interessati fit-tim / newbot.
Peress li l-bot deskritt hawn diġà nħoloq, għal skopijiet ta 'dimostrazzjoni se noħloq bot ieħor għal żmien qasir (u mbagħad inħassarha). Jiena nsejjaħlu DemoHabrBot. Ismijiet (username) tal-bots tat-telegramma kollha għandhom jispiċċaw bil-kelma botper eżempju: MyCoolBot jew my_cool_bot - dan huwa għall-bots. Imma l-ewwel nagħtu isem lill-bot (isem) - u dan huwa għan-nies. L-isem jista' jkun fi kwalunkwe lingwa, ikun fih spazji, u m'għandux għalfejn jispiċċa b'kelma bot, u lanqas m'għandux għalfejn ikun uniku. F'dan l-eżempju, sejjaħ dan il-bot Demo Habr.
Issa agħżel isem għall-bot (username, dak għall-bots). Ejja nsejħulu DemoHabrBot. Dak kollu relatat mal-isem tal-bot (isem) m'għandu x'jaqsam xejn ma' ismu - username (jew japplika, iżda eżattament l-oppost). Wara li ħoloq b'suċċess isem tal-bot uniku, għandna bżonn nikkopjaw u niffrankaw (bl-aktar kunfidenza stretta!) It-token muri fil-screenshot bi vleġġa ħamra. Bl-għajnuna tagħha aktar tard nistabbilixxu l-oriġinanti Telegramma'webhook għal tagħna Funzjoni Yandex.
Issa ejja nagħtu l-kmand lill-missier tal-bots kollha: /mybots, u se jurina lista tal-bots kollha li ħloqna. Ejja nħallu l-bot moħmi frisk waħdu għalissa Demo Habr (inħoloq biex turi kif toħloq bots, iżda aħna se nużawh ukoll illum għal skopijiet oħra ta 'dimostrazzjoni), u ejja nħarsu lejn il-bot Ħsibijiet Intelliġenti (@SmartThoughtsBot). Ikklikkja l-buttuna bl-isem tagħha fil-lista tal-bots.
Hawnhekk nistgħu nikkonfiguraw il-bot tagħna. Billi tagħfas il-buttuna Editja ... Se ngħaddu għall-editjar ta' għażla waħda jew oħra. Per eżempju, billi tikklikkja fuq il-buttuna Edit Isem nistgħu nibdlu l-isem tal-bot, ngħidu minflok Ħsibijiet Intelliġenti, ikteb Ideat Miġnun. Botpic - dan huwa l-avatar tal-bot, għandu jkun mill-inqas 150 x 150 px. deskrizzjoni — din hija deskrizzjoni qasira li l-utent jara meta jibda l-bot għall-ewwel darba, bħala tweġiba għall-mistoqsija: X'jista' jagħmel dan il-bot? dwar — deskrizzjoni saħansitra aktar fil-qosor, li tiġi trażmessa b'link għall-bot (https://t.me/SmartThoughtsBot
) jew meta tara informazzjoni dwarha.
Kulma rridu nagħmlu hu li nwaqqfu l-kmandi. Biex tagħmel dan, agħfas il-buttuna Editja Kmandi. Biex tistandardizza l-prattika tal-utent Telegramma jirrakkomanda li dejjem tuża żewġ kmandi: / ibda и / għajnuna, u jekk il-bot jeħtieġ settings, uża l-kmand addizzjonali /settings. Il-bot tagħna huwa sempliċi daqs ballun, għalhekk għadu m'għandux bżonn l-ebda settings. Aħna niktbu l-ewwel żewġ kmandi, li mbagħad nipproċessaw fil-kodiċi. Issa, jekk l-utent idaħħal slash (sinjal slash: /) fil-qasam tad-dħul, se tidher lista ta 'kmandi għal għażla ta' malajr. Kollox huwa bħal fl-istampa: fuq ix-xellug - ninstallaw kmandi permezz tal-bot missier; fuq il-lemin, dawn il-kmandi diġà huma disponibbli għall-utenti fil-bot tagħna.
Funzjoni Yandex
Issa li l-bot tagħna nħoloq, ejja mmorru Yandex.Cloudbiex toħloq funzjoni li tesegwixxi l-kodiċi tal-bot tagħna. Jekk ma ħdimtx magħhom Yandex.Cloud aqra l-materjal
Allura fil-console Yandex.Cloud fil-menu tan-navigazzjoni tax-xellug agħżel l-oġġett Funzjonijiet tas-Sħaba, u mbagħad agħfas il-buttuna Oħloq funzjoni. Nagħtuha isem u deskrizzjoni qasira għalina nfusna.
Wara li tagħfas il-buttuna joħolqu u wara ftit sekondi, il-funzjoni l-ġdida se tidher fil-lista tal-funzjonijiet kollha. Ikklikkja fuq isimha - dan iwassalna għall-paġna Reviżjoni il-funzjoni tagħna. Hawnhekk għandek bżonn tattiva (On) swiċċ Funzjoni pubblikasabiex isir aċċessibbli minn barra (għal Yandex.Cloud) tad-dinja, u t-tifsira tal-oqsma Sejħa link и Identifikatur — żommha sigrieta ħafna minn kulħadd ħlief lilek innifsek u Telegram, sabiex il-funzjoni tiegħek ma tkunx tista’ tissejjaħ minn diversi scammers.
Issa, billi tuża l-menu tax-xellug, mur L-editur funzjonijiet. Ejja nwarrbu għal mument tagħna Ħsibijiet Intelliġenti, u toħloq funzjoni ta' mudell minimu biex tiċċekkja l-funzjonalità tal-bot tagħna... Madankollu, f'dan il-kuntest, din il-funzjoni hija l-bot tagħna... Fil-qosor, issa u hawnhekk se nagħmlu bot sempliċi li se "mera" ( jiġifieri ibgħat lura) it-talbiet tal-utent. Dan il-mudell jista 'dejjem jintuża meta jinħolqu bots telegramma ġodda biex tiżgura li l-komunikazzjoni ma' Telegramma'ohm jaħdem tajjeb. Ikklikkja Oħloq fajl, ejja nsejħulu index.js, u online Editur tal-kodiċi waħħal il-kodiċi li ġej f'dan il-fajl:
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
};
};
Fil-console Yandex.Cloud għandha tidher xi ħaġa bħal din:
Aktar hawn taħt nindikaw Punt tad-dħul - indiċi.botfejn indiċi dan huwa l-isem tal-fajl (index.js), u bot - isem tal-funzjoni (module.exports.bot). Ħalli l-oqsma l-oħra kollha kif inhuma, u kklikkja l-buttuna fir-rokna ta' fuq tal-lemin Oħloq verżjoni. Fi ftit sekondi se tinħoloq din il-verżjoni tal-funzjoni. Ftit wara l-ittestjar webhook, se noħolqu verżjoni ġdida − Ħsibijiet Intelliġenti.
Ħażna ta' oġġetti
Issa li ħloqna Funzjoni Yandex, ejja, waqt li nkunu fil-console Yandex.Cloud, ejja noħolqu l-hekk imsejħa barmil (barmil, i.e. barmil bir-Russu, mhux bukkett xejn) għall-ħażna ta 'fajls tal-immaġni li se jintużaw fil-bot tagħna Ħsibijiet Intelliġenti. Fil-menu tan-navigazzjoni tax-xellug agħżel l-oġġett Ħażna ta 'Oġġetti, agħfas il-buttuna Oħloq barmil, toħroġ b'isem għalih, pereżempju, img-barmil, u, l-aktar importanti, Aqra aċċess għall-oġġetti Nagħmluha pubblika - inkella Telegram ma tarax l-istampi tagħna. Inħallu l-oqsma l-oħra kollha mhux mibdula. Agħfas il-buttuna Oħloq barmil.
Wara dan, il-lista tal-bramel kollha tista' tidher xi ħaġa bħal din (jekk dan huwa l-uniku barmil tiegħek):
Issa nissuġġerixxi li tikklikkja fuq l-isem tal-barmil u toħloq folder ġewwa biex torganizza l-ħażna ta 'immaġini għall-applikazzjonijiet differenti tiegħek. Per eżempju, għal telegram bot Ħsibijiet Intelliġenti Ħloqt folder imsejjaħ tg-bot-smart-thoughts (xejn, se nifhem dan il-kodiċi). Oħloq wieħed ukoll.
Issa tista 'tikklikkja fuq l-isem tal-folder, mur fih u ttella' fajls:
U billi tikklikkja fuq l-isem tal-fajl - ġġibu URL għall-użu fil-bot tagħna, u b'mod ġenerali - kullimkien (iżda ma tippubblikax dan URL bla bżonn, peress li t-traffiku minn Ħażna ta' oġġetti mitluba).
Dan huwa bażikament kull ma hemm għaliha Ħażna ta' oġġetti. Issa tkun taf x'għandek tagħmel meta tara pront biex ittella 'fajls hemmhekk.
Webhook
Issa aħna se ninstallaw webhook - i.e. meta l-bot jirċievi aġġornament (per eżempju, messaġġ minn utent) mis-server Telegramma lil tagħna Funzjoni Yandex tintbagħat talba (jitlob) bid-data. Hawnhekk hawn linja li tista' sempliċement tippejstja fil-qasam tal-indirizz tal-browser tiegħek u mbagħad aġġorna l-paġna (int għandek tagħmel dan darba biss): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Aħna ser nibdluha biss {bot_token} għat-token li rċevejna mingħand il-bot missier meta ħoloq il-bot tagħna, u {webhook_url} - fuq URL tagħna funzjonijiet Yandex. Stenna minuta! Iżda RossKomTsenzur jipprojbixxi lill-fornituri fil-Federazzjoni Russa milli jagħtu servizz lill-indirizz https://api.telegram.org
. Iva, hekk hu. Imma toħroġ b'xi ħaġa. Wara kollox, tista ', pereżempju, tistaqsi lin-nanna tiegħek dwar dan fl-Ukrajna, l-Iżrael jew il-Kanada - m'hemm l-ebda "Rosskomcensorship" hemmhekk, u Alla biss jaf kif in-nies jgħixu mingħajrha. Bħala riżultat, it-talba-rispons meta tinstalla webhook għandha tidher bħal din:
Aħna qed nittestjaw. Għandu "mera".
Dan huwa minnu. Prosit tagħna - issa Funzjoni Yandex sar Telegramma-bot!
Ħsibijiet Intelliġenti
Issa ejja nagħmlu Ħsibijiet Intelliġenti. Il-kodiċi huwa miftuħ u jinsab fuq
Ikklonja l-proġett u installa dipendenzi:
git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i
Agħmel il-bidliet li għandek bżonn fil-fajl index.js (mhux obbligatorju; m'għandekx għalfejn tbiddel xejn). Oħloq zip-arkivju, bil-fajl index.js u folder node_modules ġewwa, pereżempju, taħt l-isem smart.zip.
Issa mur fil-console għal tagħna funzjonijiet Yandex, agħżel tab Arkivju ZIP, agħfas il-buttuna Agħżel fajl, u niżżel l-arkivju tagħna smart.zip. Fl-aħħarnett, fir-rokna ta 'fuq tal-lemin, ikklikkja l-buttuna Oħloq verżjoni.
Fi ftit sekondi, meta l-funzjoni tiġi aġġornata, nerġgħu nittestjaw il-bot tagħna. Issa m'għadux "mirja", iżda jagħti ħsibijiet intelliġenti!
Dak kollu għal-lum. Aktar artikli jsegwu. Jekk inti interessat li taqra dan, abbona għan-notifiki dwar artikli ġodda. Tista' tabbona hawn, jew fuq Telegramma-kanal
referenzi
Donazzjonijiet
Sors: www.habr.com