Dnes z odpadových materiálov budeme montovať https://api.telegram.org/
. No, nebudeme - nie, nie. Veď v našej taške sú tzv. webhooky — s ich pomocou nepodávame požiadavky na konkrétnu adresu, ale jednoducho nám posielame našu požiadavku ako odpoveď na akúkoľvek požiadavku. To znamená, že ako v Odese odpovedáme na otázku otázkou. Preto Telegram API sa v našom kóde nezobrazí.
Vylúčenie zodpovednostiNázvy vládnych organizácií uvedené v tomto článku sú fiktívne a možné zhody s názvami organizácií v reálnom živote sú náhodné.
Vyrobíme si teda robota, ktorý nám poskytne inteligentné myšlienky. Presne ako na obrázku:
Môžete to vyskúšať v akcii - tu je názov: @SmartThoughtsBot. Všimol si tlačidlo "Alicina zručnosť"? Je to preto, že robot je akýmsi „spoločníkom“ pre robota s rovnakým názvom. Alicina zručnosť, t.j. plní rovnaké funkcie ako Alicina zručnosť a je možné, že vďaka vzájomnej reklame budú môcť spolunažívať. O tom, ako vytvoriť zručnosť Inteligentné myšlienky popísané v článku
Vytvorenie robota
Bol by som rád, keby bol tento návod užitočný pre každého, vrátane. a začínajúcich tvorcov robotov. Preto v tejto časti trochu podrobne popíšem, ako tvoriť vo všeobecnosti telegramroboti. Pre tých, ktorí tieto informácie nevyžadujú, prejdite na nasledujúce časti.
Otvorte aplikáciu Telegaram, nazvime otca všetkých robotov (všetko majú ako ľudia) - @BotOtec - a najprv mu dáme príkaz /help, aby si osviežil pamäť toho, čo môžeme urobiť. Teraz nás bude zaujímať tím / newbot.
Keďže tu popísaný bot už bol vytvorený, pre demonštračné účely vytvorím na krátky čas ďalšieho bota (a potom ho vymažem). zavolám mu DemoHabrBot. mená (meno) všetkých telegramových robotov musí končiť slovom Bot, napríklad: MyCoolBot alebo my_cool_bot - toto je pre robotov. Najprv však dáme robotovi meno (názov) - a to je pre ľudí. Názov môže byť v akomkoľvek jazyku, môže obsahovať medzery a nemusí končiť slovom Bota ani nemusí byť jedinečný. V tomto príklade som nazval tento robot Demo Habr.
Teraz vyberte názov robota (meno, ten pre roboty). Zavolajme mu DemoHabrBot. Všetko, čo súvisí s názvom robota (názov) vôbec nesúvisí s jeho menom - meno (alebo platí, ale presne naopak). Po úspešnom vytvorení jedinečného názvu robota musíme skopírovať a uložiť (najprísnejšie dôverne!) token zobrazený na snímke obrazovky s červenou šípkou. S jeho pomocou neskôr určíme pôvodnú z telegram'webhook pre naše Funkcia Yandex.
Teraz dajme príkaz otcovi všetkých robotov: /mybotsa zobrazí sa nám zoznam všetkých robotov, ktoré sme vytvorili. Čerstvo upečeného bota nechajme zatiaľ na pokoji Demo Habr (bol vytvorený, aby ukázal, ako vytvoriť roboty, ale dnes ho použijeme aj na iné demonštračné účely) a pozrime sa na robota Inteligentné myšlienky (@SmartThoughtsBot). Kliknite na tlačidlo s jeho názvom v zozname robotov.
Tu môžeme nakonfigurovať nášho robota. Stlačením tlačidla Upraviť ... Prejdeme k úprave jednej alebo druhej možnosti. Napríklad kliknutím na tlačidlo Upraviť meno môžeme zmeniť názov robota, povedzme namiesto toho Inteligentné myšlienky, píšte Bláznivé nápady. Botpic - toto je avatar robota, musí byť aspoň 150 x 150 px. Popis — toto je krátky popis, ktorý používateľ vidí pri prvom spustení robota ako odpoveď na otázku: Čo dokáže tento robot? O nás — ešte kratší popis, ktorý sa prenáša s odkazom na robota (https://t.me/SmartThoughtsBot
) alebo pri prezeraní informácií o ňom.
Všetko, čo musíme urobiť, je nastaviť príkazy. Ak to chcete urobiť, stlačte tlačidlo Upraviť príkazy. Na štandardizáciu používateľskej praxe telegram odporúča vždy použiť dva príkazy: /štart и / Pomoca ak robot potrebuje nastavenia, použite dodatočný príkaz /settings. Náš robot je jednoduchý ako lopta, takže zatiaľ nepotrebuje žiadne nastavenia. Napíšeme prvé dva príkazy, ktoré následne spracujeme v kóde. Teraz, ak používateľ zadá do vstupného poľa lomku (lomítko: /), zobrazí sa zoznam príkazov pre rýchly výber. Všetko je ako na obrázku: vľavo - príkazy inštalujeme cez otca bota; na pravej strane sú tieto príkazy už dostupné používateľom nášho robota.
Funkcia Yandex
Teraz, keď bol náš robot vytvorený, poďme na to Yandex.Cloudvytvoriť funkciu, ktorá spustí kód nášho bota. Ak ste nepracovali s Yandex.Cloud prečítajte si materiál
Takže v konzole Yandex.Cloud v ľavom navigačnom menu vyberte položku Cloudové funkciea potom stlačte tlačidlo Vytvorte funkciu. Dávame jej názov a krátky popis.
Po stlačení tlačidla vytvoriť a po niekoľkých sekundách sa nová funkcia objaví v zozname všetkých funkcií. Kliknite na jej meno - dostanete sa na stránku Recenzia naša funkcia. Tu musíte povoliť (On) prepínač Verejná funkciatak, aby bol prístupný zvonku (napr Yandex.Cloud) sveta a význam polí Odkaz na volanie и identifikátor — utajiť to pred všetkými okrem seba a telegramu, aby tvoju funkciu nemohli volať rôzni podvodníci.
Teraz pomocou ľavého menu prejdite na editor funkcie. Odložíme na chvíľu bokom náš Inteligentné myšlienky, a vytvorte minimálnu šablónovú funkciu na kontrolu funkčnosti nášho bota... Avšak v tomto kontexte je táto funkcia naším botom... Skrátka, teraz a práve tu si vytvoríme jednoduchého bota, ktorý bude “zrkadliť” ( t.j. poslať späť ) požiadavky používateľov. Túto šablónu možno vždy použiť pri vytváraní nových telegramových robotov, aby ste sa uistili, že komunikácia s telegramohm funguje dobre. Kliknite Vytvorte súbor, nazvime to index.jsa online Editor kódu do tohto súboru vložte nasledujúci kód:
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
};
};
V konzole Yandex.Cloud by to malo vyzerať takto:
Ďalej uvádzame nižšie Vstupný bod - index.botKde index toto je názov súboru (index.js), a Bot - názov funkcie (module.exports.bot). Všetky ostatné polia nechajte tak, ako sú, a kliknite na tlačidlo v pravom hornom rohu Vytvoriť verziu. Táto verzia funkcie sa vytvorí o niekoľko sekúnd. Čoskoro po testovaní webhook, vytvoríme novú verziu - Inteligentné myšlienky.
Skladovanie objektov
Teraz, keď sme vytvorili Funkcia Yandex, no tak, kým sme v konzole Yandex.Cloud, vytvorme si tzv vedro (vedro, t.j. vedro v ruštine, vôbec nie kyticu) na ukladanie obrázkových súborov, ktoré budú použité v našom bote Inteligentné myšlienky. V ľavom navigačnom menu vyberte položku Ukladanie objektov, stlač tlačidlo Vytvorte vedro, vymyslite mu názov, napr. img-bucket, a čo je najdôležitejšie, Prístup na čítanie k objektom Zverejňujeme to - inak Telegram neuvidí naše obrázky. Všetky ostatné polia necháme nezmenené. stlač tlačidlo Vytvorte vedro.
Potom môže zoznam všetkých segmentov vyzerať asi takto (ak je toto váš jediný segment):
Teraz navrhujem kliknúť na názov vedra a vytvoriť v ňom priečinok na usporiadanie ukladania obrázkov pre vaše rôzne aplikácie. Napríklad pre telegramového robota Inteligentné myšlienky Vytvoril som priečinok s názvom tg-bot-smart-myšlienky (nič, tomuto kódu budem rozumieť). Vytvorte si aj vy.
Teraz môžete kliknúť na názov priečinka, prejsť doň a nahrať súbory:
A kliknutím na názov súboru - získajte ho URL na použitie v našom robote a vo všeobecnosti - kdekoľvek (ale nezverejňujte to URL zbytočné, keďže premávka z Skladovanie objektov spoplatnené).
To je v podstate všetko Skladovanie objektov. Teraz budete vedieť, čo robiť, keď sa zobrazí výzva na nahranie súborov.
Webhook
Teraz nainštalujeme webhook - t.j. keď robot dostane aktualizáciu (napríklad správu od používateľa) zo servera telegram do nášho Funkcia Yandex bude odoslaná žiadosť (požiadať) s údajmi. Tu je riadok, ktorý môžete jednoducho vložiť do poľa adresy prehliadača a potom obnoviť stránku (stačí to urobiť raz): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Len ho vymeníme {bot_token} na token, ktorý sme dostali od otcovského robota pri vytváraní nášho robota a {webhook_url} - zapnuté URL náš Funkcie Yandex. Počkaj minútu! ale RossKomTsenzur zakazuje poskytovateľom v Ruskej federácii obsluhovať adresu https://api.telegram.org
. Áno, to je správne. Ale vymysli niečo. Koniec koncov, môžete sa na to opýtať svojej babičky napríklad na Ukrajine, v Izraeli alebo v Kanade - tam žiadna „Rosskomcenzúra“ neexistuje a len Boh vie, ako ľudia bez nej žijú. V dôsledku toho by požiadavka-odpoveď pri inštalácii webhooku mala vyzerať takto:
Testujeme. Mal by sa „zrkadliť“.
Toto je pravda. Gratulujeme - teraz Funkcia Yandex sa stal telegram-bot!
Inteligentné myšlienky
Teraz poďme robiť inteligentné myšlienky. Kód je otvorený a leží na
Naklonujte projekt a nainštalujte závislosti:
git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i
Vykonajte potrebné zmeny v súbore index.js (voliteľné; nemusíte nič meniť). Vytvorte zips-archív, so spis index.js a priečinok node_modules vnútri, napríklad pod menom smart.zip.
Teraz prejdite do konzoly na našu Funkcie Yandex, vyberte kartu ZIP archív, stlač tlačidlo Vyberte súbora stiahnite si náš archív smart.zip. Nakoniec v pravom hornom rohu kliknite na tlačidlo Vytvoriť verziu.
O niekoľko sekúnd, keď sa funkcia aktualizuje, opäť otestujeme nášho robota. Teraz už „nezrkadlí“, ale prináša inteligentné myšlienky!
To je na dnes všetko. Nasledujú ďalšie články. Ak máte záujem si toto prečítať, prihláste sa na odber upozornení na nové články. Prihlásiť sa môžete tu, alebo na telegram- kanál
referencie
dary
Zdroj: hab.com