Hodiaŭ, el improvizitaj materialoj, ni kolektos enen https://api.telegram.org/
. Nu, ni ne faros - ne, ne. Ja en nia sako estas tn. rethokoj - kun ilia helpo, ni ne faras petojn al specifa adreso, sed nur sendas nian peton kiel respondon al iu peto al ni. Tio estas, kiel en Odeso - ni respondas demandon per demando. Tial Telegram API ne aperos en nia kodo.
MalgarantioLa nomoj de iuj ŝtataj organizaĵoj menciitaj en ĉi tiu artikolo estas fikciaj, kaj eblaj koincidoj kun la nomoj de realvivaj organizoj estas hazardaj.
Do, ni faros bot, kiu provizos al ni inteligentajn pensojn. Ĝuste kiel en la bildo:
Vi povas provi ĝin en ago - jen la nomo: @SmartThoughtsBot. Rimarku la butonon "La Kapablo de Alice"? Ĉi tio estas ĉar la bot estas speco de "kunulo" por la samnoma la lerteco de Alice, t.e. ĝi plenumas la samajn funkciojn kiel la lerteco de Alice kaj, eble, ke ili povas kunekzisti pace reklamante unu la alian. Pri kiel krei Saĝa Penskapablo priskribita en la artikolo
Bot-kreado
Mi ŝatus, ke ĉi tiu lernilo estu utila al ĉiuj, inkl. kaj komencanto "bot konstruistoj". Tial, en ĉi tiu sekcio mi priskribos iom detale kiel krei ĝenerale en Telegramo'e bots. Por tiuj, kiuj ne bezonas ĉi tiujn informojn, iru al la sekvaj sekcioj.
Malfermu la aplikaĵon Telegaram, ni nomas la patro de ĉiuj robotoj (ili havas ĉion kiel homoj) - @BotFather — kaj por komenci, ni donos al li la /help-ordonon por refreŝigi nian memoron pri tio, kion ni povas fari. Nun ni interesiĝas pri la teamo / newbot.
Ĉar la ĉi tie priskribita roboto jam estas kreita, por pruvceloj mi kreos alian roboton por mallonga tempo (tiam mi forigos ĝin). Mi vokos lin DemoHabrBot. Nomoj (uzantonomo) ĉiuj telegrambotoj devas finiĝi per vorto botekzemple: MyCoolBot aŭ mia_malvarma_bot Ĉi tio estas por robotoj. Sed unue, donu al la roboto nomon (nomo) estas por homoj. La nomo povas esti en ajna lingvo, enhavi spacojn, ne devas fini per vorto bot, kaj eĉ ne devas esti unika. En ĉi tiu ekzemplo, mi nomis ĉi tiun bot Demo Habr.
Nun elektu nomon por la bot (uzantonomo, tiu por robotoj). Ni nomu ĝin DemoHabrBot. Ĉio rilatas al la nomo de la bot (nomo) tute ne rilatas al lia nomo - uzantonomo (aŭ validas, sed ĝuste male). Post sukcese krei unikan bot-nomon, ni devas kopii kaj konservi (en la plej strikta konfido!) La ĵetonon montritan en la ekrankopio kun ruĝa sago. Kun ĝia helpo, ni poste instalos la eksiĝintan Telegramo' rethoko al nia Yandex-funkcio.
Kaj nun ni donos la ordonon al la patro de ĉiuj robotoj: /miaj robotojkaj ĝi montros al ni liston de ĉiuj robotoj, kiujn ni kreis. Ni lasu la freŝbakitan botn sola por nun Demo Habr (ĝi estis kreita por montri kiel krei robotojn, sed ni uzos ĝin hodiaŭ por aliaj pruvceloj), kaj konsideru la roboton Saĝaj Pensoj (@SmartThoughtsBot). Alklaku la butonon kun ĝia nomo en la listo de robotoj.
Ĉi tie ni povas agordi nian roboton. Premante butonon Redakti ... ni pluiros al redaktado de unu aŭ alia opcio. Ekzemple, alklakante la butonon Redaktu Nomon ni povas ŝanĝi la nomon de la bot, diru anstataŭ Saĝaj Pensoj, skribu frenezaj ideoj. Botpic - ĉi tio estas la avataro de la bot, devas esti almenaŭ 150 x 150 px. Priskribo estas mallonga priskribo, kiun la uzanto vidas kiam la bot estas lanĉita por la unua fojo, kiel respondo al la demando: Kion povas fari ĉi tiu bot? Pri - eĉ pli mallonga priskribo, kiu estas transdonita kun ligilo al la bot (https://t.me/SmartThoughtsBot
) aŭ kiam vi vidas informojn pri ĝi.
Ni nur bezonas agordi la komandojn. Por fari tion, premu la butonon Redakti Komandojn. Normigi uzantpraktikojn Telegramo rekomendas ĉiam uzi du komandojn: / komenci и / helpi, kaj se la roboto bezonas agordojn - aldona /settings komando. Nia roboto estas tiel simpla kiel pilko, do ĝi ankoraŭ ne bezonas agordojn. Ni skribas la unuajn du komandojn, kiujn ni poste prilaboros en la kodo. Nun, se la uzanto enigas oblikvon (oblikvo: /) en la enigkampon, listo de komandoj aperos por ilia rapida elekto. Ĉio estas kiel en la bildo: maldekstre - ni starigas komandojn per la bot-patro; dekstre, ĉi tiuj komandoj jam disponeblas por uzantoj en nia bot.
Yandex-funkcio
Nun kiam nia bot estis kreita, ni iru al Yandex.Cloudkrei funkcion, kiu ekzekutos nian robotkodon. Se vi ne laboris kun Yandex.Cloud legi la materialon
Do en la konzolo Yandex.Nuboj en la maldekstra naviga menuo, elektu la eron Nubaj Funkcioj, kaj poste premu la butonon Krei funkcion. Ni donas al ĝi nomon, kaj por ni mem - mallongan priskribon.
Post premi la butonon krei kaj post kelkaj sekundoj, la nova funkcio aperos en la listo de ĉiuj funkcioj. Alklaku ŝian nomon - ĉi tio kondukos nin al la paĝo trarigardo nia funkcio. Ĉi tie vi devas ebligiOn) ŝalti publika funkciodisponigi ĝin de la ekstera (por Yandex.Nuboj) de la mondo, kaj la valoro de la kampoj Ligo por voki и Identigilo - konservu ĝin en profunda sekreto de ĉiuj krom vi kaj Telegramo, por ke diversaj friponoj ne povas voki vian funkcion.
Nun uzante la maldekstran menuon iru al La redaktisto funkcioj. Ni flankenlasu por momento nian Saĝaj Pensoj, kaj kreu minimuman ŝablonan funkcion por kontroli la agadon de nia roboto ... Tamen, en ĉi tiu kunteksto, ĉi tiu funkcio estas nia roboto ... Mallonge, nun kaj ĝuste ĉi tie ni faros la plej simplan roboton kiu "spegulos" ( t.e. resendi ) uzantpetojn. Ĉi tiu ŝablono ĉiam povas esti uzata dum kreado de novaj telegramaj robotoj por certigi tiun komunikadon kun Telegram'om funkcias bone. Klaku Krei dosieron, nomu ĝin indekso.js, kaj rete Kodredaktilo algluu la sekvan kodon en ĉi tiun dosieron:
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
};
};
En la konzolo Yandex.Cloud, ĝi devus aspekti kiel ĉi tio:
Malsupre, ni indikas enirpunkto - indekso.botkie indekso ĉi tiu estas la dosiernomo (indekso.js), kaj bot - nomo de funkcio (modulo.eksportoj.bot). Lasu ĉiujn aliajn kampojn "kiel estas", kaj en la supra dekstra angulo alklaku la butonon Krei Version. Post kelkaj sekundoj, ĉi tiu versio de la funkcio estos kreita. Baldaŭ post la provo rethoko, ni kreos novan version − Saĝaj Pensoj.
Objekta Stokado
Nun kiam ni starigis Yandex-funkcioni iru dum ni estas en la konzolo Yandex.Nuboj, krei tn. sitelo (rubujo, t.e. sitelo en la rusa, neniel bukedo) por konservi bilddosierojn, kiuj estos uzataj en nia bot Saĝaj Pensoj. Elektu el la maldekstra naviga menuo Stokado de Objektoj, premu la butonon Krei sitelon, donu al ĝi nomon, ekzemple, img-sitelo, kaj, plej grave, Leg aliro al objektoj publikigu ĝin - alie Telegramo ne vidos niajn bildojn. Ĉiuj aliaj kampoj estas lasitaj senŝanĝaj. Ni premas la butonon Krei sitelon.
Post tio, listo de ĉiuj siteloj povus aspekti kiel ĉi tio (se ĉi tiu estas via sola sitelo):
Nun mi proponas alklaki la nomon de la sitelo, kaj en ĝi krei dosierujon por organizi la stokadon de bildoj por malsamaj aplikoj. Ekzemple, por telegrambot Saĝaj Pensoj mi kreis dosierujon nomitan tg-bot-inteligentaj-pensoj (Nenion, mi komprenos ĉi tiun ĉi ĉifron). Kreu ankaŭ unu.
Nun vi povas alklaki la dosierujon, eniri ĝin kaj alŝuti dosierojn:
Kaj alklakante la dosiernomon - akiru ĝin URL por uzo en nia bot, kaj ĝenerale - ie ajn (sed, ne publikigu ĉi tion URL nenecese, ekde trafiko de objekto stokado ŝargita).
Ĉi tie, fakte, tio estas ĉio objekto stokado. Nun vi scios kion fari kiam vi vidos la inviton por alŝuti dosierojn tie.
Rethoko
Nun ni instalos rethoko — t.e. kiam la bot ricevas ĝisdatigon (ekzemple mesaĝon de la uzanto), de la servilo Telegramo en nian Yandex-funkcio peto estos senditapeto) kun datumoj. Jen ĉeno, kiun vi povas simple alglui en la adreskampon de la retumilo, kaj poste refreŝigi la paĝon (ĉi tio devas esti farita nur unufoje): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Nur anstataŭigu {bot_token} al la ĵetono, kiun ni ricevis de la patro bot dum kreado de nia bot, kaj {webhook_url} - on URL nia Yandex-funkcioj. Atendu minuton! Sed RossKomCenzuro malpermesas al provizantoj en la Rusa Federacio servi la adreson https://api.telegram.org
. Jes tio pravas. Sed vi povas pensi pri io. Ja vi povas ekzemple demandi vian avinon pri tio en Ukrainio, Israelo aŭ Kanado - tie ne ekzistas "rusaj cenzuroj", kaj nur Dio scias, kiel homoj vivas sen ĝi. Kiel rezulto, la peto-respondo dum instalado de la rethoko devus aspekti jene:
Testado. Devus esti spegulita.
Ĉi tio estas vera. Nian gratulojn – nun Yandex-funkcio fariĝis Telegramo-bot!
Saĝaj Pensoj
Kaj nun ni faras Smart Thoughts. La kodo estas malfermita kaj kuŝas
Klonu la projekton kaj instalu la dependecojn:
git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i
Faru la ŝanĝojn, kiujn vi bezonas al la dosiero indekso.js (laŭvola; vi nenion povas ŝanĝi). Krei zip-arkivo, kun dosiero indekso.js kaj dosierujo nodo_moduloj interne, ekzemple, vokis smart.zip.
Nun iru en la konzolo al nia Yandex-funkcioj, elektu la langeton ZIP-arkivo, premu la butonon Elektu dosieronkaj elŝutu nian arkivon smart.zip. Fine, en la supra dekstra angulo, alklaku la butonon Krei Version.
Post kelkaj sekundoj, kiam la funkcio estos ĝisdatigita, ni testos nian roboton denove. Nun li ne plu "spegulas", sed liveras inteligentajn pensojn!
Tio estas ĉio por hodiaŭ. Aliaj artikoloj sekvas. Se vi interesiĝas legi ĉi tion, abonu sciigojn pri novaj artikoloj. Vi povas aboni ĉi tie aŭ Telegramo-kanalo
referencoj
Donacoj
fonto: www.habr.com