Dnes z improvizovaných materiálů budeme sbírat v https://api.telegram.org/
. No, nebudeme - ne, ne. Opravdu, v naší tašce jsou tzv. webhooky - s jejich pomocí nepodáváme požadavky na konkrétní adresu, ale pouze zasíláme naši žádost jako odpověď na jakýkoli požadavek na nás. Tedy jako v Oděse – na otázku odpovídáme otázkou. Proto Telegram API se v našem kódu nezobrazí.
Zřeknutí se odpovědnostiNázvy státních organizací zmíněných v tomto článku jsou fiktivní a možné shody se jmény skutečných organizací jsou náhodné.
Vyrobíme si tedy robota, který nás bude zásobovat chytrými myšlenkami. Přesně jako na obrázku:
Můžete si to vyzkoušet v akci - zde je název: @SmartThoughtsBot. Všimněte si tlačítka "Alicina dovednost"? Je to proto, že bot je jakýmsi „společníkem“ pro eponymní Alicina dovednost, tj. plní stejné funkce jako Alicina dovednost a možná, že mohou koexistovat v míru a vzájemně si propagovat. O tom, jak tvořit Schopnost chytrého myšlení popsané v článku
Vytvoření bota
Přál bych si, aby tento návod byl užitečný pro všechny, vč. a začínající „stavitelé botů“. Proto v této části popíšu trochu podrobně, jak tvořit obecně v Telegrame boti. Pro ty, kteří tyto informace nepotřebují, pokračujte v dalších částech.
Otevřete aplikaci Telegaram, nazýváme otcem všech botů (mají všechno jako lidé) - @BotOtec - a pro začátek mu dáme příkaz / help, aby si osvěžil paměť toho, co umíme. Teď nás zajímá tým / newbot.
Vzhledem k tomu, že zde popsaný bot již byl vytvořen, pro účely demonstrace vytvořím na krátkou dobu dalšího bota (pak jej smažu). Zavolám mu DemoHabrBot. jména (uživatelské jméno) všichni telegramoví roboti musí končit slovem čenich, Například: MyCoolBot nebo můj_cool_bot Toto je pro roboty. Nejprve však robotovi dejte jméno (název) je pro lidi. Název může být v libovolném jazyce, obsahovat mezery, nemusí končit slovem čenicha ani nemusí být unikátní. V tomto příkladu jsem nazval tohoto robota Demo Habr.
Nyní vyberte jméno pro robota (uživatelské jméno, ten pro roboty). Nazvěme to DemoHabrBot. Vše, co souvisí se jménem robota (název) vůbec nesouvisí s jeho jménem - uživatelské jméno (nebo platí, ale přesně naopak). Po úspěšném vytvoření jedinečného názvu robota musíme zkopírovat a uložit (v nejpřísnější důvěře!) token zobrazený na snímku obrazovky s červenou šipkou. S jeho pomocí později nainstalujeme odchozí Telegram'webhook k našemu Funkce Yandex.
A nyní dáme příkaz otci všech botů: /mybotia zobrazí se nám seznam všech robotů, které jsme vytvořili. Čerstvě upečeného bota zatím nechme na pokoji Demo Habr (byl vytvořen, aby ukázal, jak vytvářet roboty, ale my ho dnes použijeme pro jiné demonstrační účely) a zvažte robota Chytré myšlenky (@SmartThoughtsBot). Klikněte na tlačítko s jeho názvem v seznamu robotů.
Zde můžeme nastavit našeho robota. Stisknutí tlačítka Upravit… přejdeme k úpravě jedné nebo druhé možnosti. Například kliknutím na tlačítko Upravit jméno můžeme změnit jméno robota, řekněme místo Chytré myšlenky, napsat bláznivé nápady. Botpic - toto je avatar robota, musí být alespoň 150 x 150 px. Popis je krátký popis, který uživatel vidí při prvním spuštění robota jako odpověď na otázku: Co tento robot umí? O Nás - ještě kratší popis, který je přenášen s odkazem na robota (https://t.me/SmartThoughtsBot
) nebo při prohlížení informací o něm.
Musíme jen nastavit příkazy. Chcete-li to provést, stiskněte tlačítko Upravit příkazy. Standardizovat uživatelské postupy Telegram doporučuje vždy používat dva příkazy: / start и /Pomoca pokud robot potřebuje nastavení - další příkaz /settings. Náš robot je jednoduchý jako míč, takže zatím nepotřebuje žádné nastavení. Napíšeme první dva příkazy, které následně zpracujeme v kódu. Nyní, pokud uživatel zadá do vstupního pole lomítko (lomítko : /), objeví se seznam příkazů pro jejich rychlý výběr. Vše je jako na obrázku: vlevo - nastavujeme příkazy přes otce bota; vpravo jsou tyto příkazy již dostupné uživatelům našeho robota.
Funkce Yandex
Nyní, když byl náš robot vytvořen, pojďme na to Yandex.Cloudvytvořit funkci, která spustí náš kód bota. Pokud jste nepracovali s Yandex.Cloud přečtěte si materiál
Tedy v konzoli Yandex.Clouds v levé navigační nabídce vyberte položku Cloudové funkcea poté stiskněte tlačítko Vytvořte funkci. Dáváme mu jméno a pro sebe - stručný popis.
Po stisknutí tlačítka vytvořit a po několika sekundách se nová funkce objeví v seznamu všech funkcí. Klikněte na její jméno - tím se dostaneme na stránku Recenze naše funkce. Zde musíte povolitOn) přepínač veřejná funkceaby byl dostupný z externího (pro Yandex.Clouds) světa a hodnotu polí Odkaz na volání и ID - uchovávejte to v hlubokém utajení přede všemi kromě vás a Telegramu, aby vaši funkci nemohli volat různí podvodníci.
Nyní pomocí levého menu přejděte na Editor funkcí. Odložme na chvíli naše Chytré myšlenkya vytvořit minimální funkci šablony pro kontrolu výkonu našeho robota... V tomto kontextu je však tato funkce naším robotem... Stručně řečeno, nyní a právě zde vytvoříme nejjednoduššího robota, který bude „zrcadlit“ ( tj. odeslat zpět ) uživatelské požadavky. Tuto šablonu lze vždy použít při vytváření nových robotů telegramů, aby se zajistila komunikace s Telegram'om funguje dobře. Klikněte Vytvořit soubor, zavolej to index.jsa online Editor kódu do tohoto souboru vložte následující 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 mělo vypadat nějak takto:
Níže uvádíme Vstupní bod - index.botKde index toto je název souboru (index.js) a čenich - název funkce (module.exports.bot). Všechna ostatní pole ponechte „tak jak jsou“ a v pravém horním rohu klikněte na tlačítko Vytvořit verzi. Po několika sekundách se vytvoří tato verze funkce. Brzy po testování webhook, vytvoříme novou verzi − Chytré myšlenky.
Skladování objektů
Nyní, když jsme se nastavili Funkce Yandexpojďme, když jsme v konzoli Yandex.Clouds, vytvořte tzv. Kbelík (vědro, tj. kbelík v ruštině, v žádném případě kytice) pro ukládání obrazových souborů, které budou použity v našem botě Chytré myšlenky. Vyberte z levé navigační nabídky Uložení objektů, zmáčknout tlačítko Vytvořte kbelík, pojmenujte to, např. img-bucket, a nejdůležitějsí, Přístup ke čtení k objektům zveřejnit - jinak Telegram neuvidí naše obrázky. Všechna ostatní pole zůstanou nezměněna. Stiskneme tlačítko Vytvořte kbelík.
Poté může seznam všech segmentů vypadat nějak takto (pokud je toto váš jediný segment):
Nyní navrhuji kliknout na název kbelíku a vytvořit v něm složku pro uspořádání ukládání obrázků pro různé aplikace. Například pro telegramového robota Chytré myšlenky vytvořil jsem složku s názvem tg-bot-chytré-myšlenky (Nic, tuhle šifru pochopím). Vytvořte si také.
Nyní můžete kliknout na název složky, přejít do ní a nahrát soubory:
A kliknutím na název souboru - získat URL pro použití v našem robotu a obecně - kdekoli (ale toto nezveřejňujte URL zbytečně, protože provoz z úložiště objektů zpoplatněno).
Tady je to vlastně všechno úložiště objektů. Nyní budete vědět, co dělat, když se zobrazí výzva k nahrání souborů.
Webhook
Nyní provedeme instalaci webhook - tj. když robot obdrží aktualizaci (například zprávu od uživatele) ze serveru Telegram do našeho Funkce Yandex žádost bude odeslánapožádat) s daty. Zde je řetězec, který můžete jednoduše vložit do adresního pole prohlížeče a poté obnovit stránku (toto je třeba provést pouze jednou): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Stačí vyměnit {bot_token} na token, který jsme obdrželi od robota otce při vytváření našeho robota, a {webhook_url} - zapnuto URL naše Funkce Yandex. Počkej chvíli! Ale RossKomCensorship zakazuje poskytovatelům v Ruské federaci doručovat adresu https://api.telegram.org
. Ano to je správně. Ale něco si vymyslet můžete. Ostatně na to se můžete zeptat třeba babičky na Ukrajině, v Izraeli nebo v Kanadě – tam žádná „ruská cenzura“ neexistuje a jen bůh ví, jak se bez ní žije. V důsledku toho by žádost-odpověď při instalaci webhooku měla vypadat takto:
Testování. Mělo by být zrcadleno.
To je pravda. Gratulujeme - nyní Funkce Yandex se stal Telegram-bot!
Chytré myšlenky
A teď děláme Chytré myšlenky. Kód je otevřený a leží dál
Naklonujte projekt a nainstalujte závislosti:
git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i
Proveďte v souboru potřebné změny index.js (volitelné; nemůžete nic změnit). Vytvořit zip-archiv, se souborem index.js a složku node_modules uvnitř např. tzv smart.zip.
Nyní přejděte v konzole k našemu Funkce Yandex, vyberte kartu ZIP archiv, zmáčknout tlačítko Vyberte soubora stáhněte si náš archiv smart.zip. Nakonec v pravém horním rohu klikněte na tlačítko Vytvořit verzi.
Za pár sekund, až bude funkce aktualizována, našeho bota znovu otestujeme. Nyní již „nezrcadlí“, ale přináší chytré myšlenky!
To je pro dnešek vše. Další články následují. Pokud máte zájem si toto přečíst, přihlaste se k odběru upozornění na nové články. Přihlásit se můžete zde popř Telegram-kanál
reference
.Онаты
Zdroj: www.habr.com