Ma hulladék anyagokból szereljük össze https://api.telegram.org/
. Nos, nem fogjuk – nem, nem. Hiszen a táskánkban ún. webhookok — segítségükkel nem egy meghatározott címre kérünk, hanem egyszerűen elküldjük a megkeresésünket válaszként bármilyen megkeresésre. Vagyis, mint Odesszában, kérdésre kérdéssel válaszolunk. Ezért Telegram API nem jelenik meg a kódunkban.
Jogi nyilatkozatAz ebben a cikkben említett kormányzati szervezetek neve fiktív, és a valós szervezetek nevével való esetleges egyezések véletlenek.
Tehát készítünk egy botot, amely okos gondolatokkal lát el bennünket. Pont olyan, mint a képen:
Kipróbálhatod működés közben – itt a név: @SmartThoughtsBot. Észrevette a gombot "Alice ügyessége"? Ennek az az oka, hogy a bot egyfajta „társa” az azonos nevű botnak. Alice ügyessége, azaz ugyanazokat a funkciókat látja el, mint Alice ügyessége és lehetséges, hogy egymás reklámozásával békésen együtt tudnak majd élni. Arról, hogyan kell létrehozni készség Okos gondolatok cikkben leírva
Bot létrehozása
Szeretném, ha ez az oktatóanyag mindenki számára hasznos lenne, beleértve. és kezdő botépítők. Ezért ebben a részben részletesen leírom, hogyan kell általában létrehozni Telegram'e botok. Azok számára, akiknek nincs szüksége erre az információra, folytassa a következő szakaszokkal.
Nyissa meg az alkalmazást Telegaram, nevezzük minden bot atyjának (mindenük van, mint az embereknek) - @BotFather - és először a /help parancsot adjuk neki, hogy felfrissítse az emlékezetét, hogy mit tehetünk. Most érdeklődni fogunk a csapat iránt / newbot.
Mivel az itt leírt bot már elkészült, demonstrációs célból rövid időre létrehozok egy másik botot (majd törlöm). felhívom DemoHabrBot. Nevek (felhasználónév) minden táviratrobotnak a szóval kell végződnie pofa, például: MyCoolBot vagy my_cool_bot - ez a botoknak való. De először adjunk nevet a botnak (név) – és ez az embereknek szól. A név bármilyen nyelvű lehet, szóközt tartalmazhat, és nem kell szóra végződnie pofa, és még csak nem is kell egyedinek lennie. Ebben a példában ezt a botot hívtam Demo Habr.
Most válasszon nevet a botnak (felhasználónév, a botoknak valót). Hívjuk fel DemoHabrBot. Minden, ami a bot nevével kapcsolatos (név) egyáltalán nem kapcsolódik a nevéhez - felhasználónév (vagy érvényes, de pont fordítva). Az egyedi botnév sikeres létrehozása után le kell másolnunk és elmentenünk (a legszigorúbb bizalommal!) a képernyőképen látható, piros nyíllal ellátott tokent. Segítségével később megállapítjuk a származást Telegram'egy webhook nekünk Yandex funkció.
Most pedig adjuk ki a parancsot minden bot atyjának: /mybots, és megmutatja nekünk az általunk létrehozott összes robotok listáját. A frissen sült botot most hagyjuk békén Demo Habr (a botok létrehozásának bemutatására készült, de ma más demonstrációs célokra is felhasználjuk), és nézzük a botot Okos gondolatok (@SmartThoughtsBot). Kattintson a nevét tartalmazó gombra a robotok listájában.
Itt konfigurálhatjuk a botunkat. A gomb megnyomásával Szerkesztése ... Továbblépünk egyik vagy másik lehetőség szerkesztésére. Például a gombra kattintva Név szerkesztése megváltoztathatjuk a bot nevét, mondjuk helyette Okos gondolatok, ír Őrült ötletek. Botpic - ez a bot avatarja, legalábbis annak kell lennie 150 150 x px. Leírás - ez egy rövid leírás, amelyet a felhasználó a bot első indításakor lát, válaszként a következő kérdésre: Mit tud ez a bot? Rólunk
- még rövidebb leírás, amelyet a botra mutató hivatkozással továbbítanak (https://t.me/SmartThoughtsBot
), vagy amikor információkat tekint meg róla.
Nincs más dolgunk, mint beállítani a parancsokat. Ehhez nyomja meg a gombot Parancsok szerkesztése. A felhasználói gyakorlat egységesítése Telegram mindig két parancs használatát javasolja: /Rajt и / Segítség, és ha a botnak beállításokra van szüksége, használja a további /settings parancsot. Botunk olyan egyszerű, mint egy labda, így még nincs szüksége semmilyen beállításra. Megírjuk az első két parancsot, amit aztán kódban feldolgozunk. Most, ha a felhasználó beír egy perjelet (perjel: /) a beviteli mezőbe, megjelenik a parancsok listája a gyors kiválasztáshoz. Minden úgy van, mint a képen: bal oldalon - parancsokat telepítünk az apaboton keresztül; a jobb oldalon ezek a parancsok már elérhetőek a botunk felhasználói számára.
Yandex funkció
Most, hogy a robotunk elkészült, menjünk tovább Yandex.Cloudhogy hozzunk létre egy függvényt, amely végrehajtja a robotunk kódját. Ha nem dolgoztál együtt Yandex.Cloud olvassa el az anyagot
Tehát a konzolban Yandex.Cloud a bal oldali navigációs menüben válassza ki az elemet Felhőfunkciók, majd nyomja meg a gombot Hozzon létre egy függvényt. Nevet és rövid leírást adunk neki magunknak.
A gomb megnyomása után teremt és néhány másodperc múlva az új funkció megjelenik az összes funkció listájában. Kattintson a nevére – ezzel az oldalra jutunk Értékelés funkciónk. Itt engedélyeznie kell (On) kapcsolót Nyilvános funkcióhogy külső oldalról elérhetővé váljon (pl Yandex.Cloud) a világról, és a mezők jelentéséről Hívás link и Azonosító - tartsa mélyen titokban mindenki előtt, kivéve saját magát és a Telegramot, hogy funkcióját ne hívhassák meg a különböző csalók.
Most a bal oldali menü használatával lépjen a következőre: A szerkesztő funkciókat. Tegyük félre egy pillanatra a magunkét Okos gondolatok, és hozzon létre egy minimális sablonfüggvényt, amellyel ellenőrizheti a botunk működését... Ebben az összefüggésben azonban ez a funkció a mi botunk... Röviden, most és itt egy egyszerű botot fogunk készíteni, amely „tükrözni fog” ( azaz küldje vissza ) felhasználói kéréseket. Ez a sablon mindig használható új távirat-botok létrehozásakor, hogy megbizonyosodjon arról, hogy a kommunikációt Távirat'ohm jól működik. Kattintson Fájl létrehozása, nevezzük index.js, és online Kódszerkesztő illessze be a következő kódot ebbe a fájlba:
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
};
};
A Yandex.Cloud konzolban valahogy így kell kinéznie:
Alább jelezzük Belépési pont - index.botAhol index ez a fájlnév (index.js), és pofa - függvény neve (module.exports.bot). Hagyja meg az összes többi mezőt, és kattintson a jobb felső sarokban található gombra Verzió létrehozása. Néhány másodperc múlva a funkciónak ez a verziója létrejön. Nem sokkal a tesztelés után webhook, létrehozunk egy új verziót - Okos gondolatok.
Objektumtárolás
Most, hogy létrehoztuk Yandex funkció, gyerünk, amíg a konzolban vagyunk Yandex.Cloud, hozzuk létre az ún vödör (vödör, azaz vödör oroszul, egyáltalán nem csokor) a botunkban használt képfájlok tárolására Okos gondolatok. A bal oldali navigációs menüben válassza ki az elemet Objektum tárolása, nyomja meg a gombot Hozzon létre egy vödröt, találjon ki neki egy nevet, például img-vödör, és ami a legfontosabb, Olvasási hozzáférés az objektumokhoz Nyilvánossá tesszük – különben a Telegram nem fogja látni a képeinket. Az összes többi mezőt változatlanul hagyjuk. nyomja meg a gombot Hozzon létre egy vödröt.
Ezek után az összes vödör listája valahogy így nézhet ki (ha ez az egyetlen vödör):
Most azt javaslom, hogy kattintson a vödör nevére, és hozzon létre egy mappát benne, ahol megszervezheti a képek tárolását a különböző alkalmazásokhoz. Például egy táviratbothoz Okos gondolatok nevű mappát hoztam létre tg-bot-smart-thoughts (semmi, meg fogom érteni ezt a kódot). Hozz létre te is egyet.
Most rákattinthat a mappa nevére, beléphet abba, és feltöltheti a fájlokat:
És a fájl nevére kattintva kapja meg URL a robotunkban való használatra, és általában - bárhol (de ezt ne tedd közzé URL szükségtelen, mivel a forgalom felől Objektumtárolás töltött).
Lényegében ez minden Objektumtárolás. Most már tudni fogja, mit kell tennie, ha megjelenik a fájlok feltöltésére vonatkozó felszólítás.
Webhook
Most telepítjük webhook - azaz amikor a bot frissítést kap (például üzenetet egy felhasználótól) a szervertől Telegram a miénknek Yandex funkció kérést küldünk (kérni) adatokkal. Íme egy sor, amelyet egyszerűen beilleszthet a böngésző címmezőjébe, majd frissítheti az oldalt (ezt csak egyszer kell megtennie): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Csak kicseréljük {bot_token} arra a tokenre, amelyet az apabottól kaptunk a botunk létrehozásakor, és {webhook_url} - tovább URL mi Yandex funkciók. Várj egy percet! De RossKomTsenzur megtiltja az Orosz Föderáció szolgáltatóinak a cím kiszolgálását https://api.telegram.org
. Igen ez így van. De találj ki valamit. Elvégre például megkérdezheti erről a nagymamáját Ukrajnában, Izraelben vagy Kanadában - ott nincs „rosskomcenzúra”, és csak Isten tudja, hogyan élnek az emberek nélküle. Ennek eredményeként a webhook telepítésekor a kérés-válasz a következőképpen néz ki:
Tesztelünk. „Tükrözni” kell.
Ez igaz. Gratulálunk – most Yandex funkció vált Telegram-bot!
Okos gondolatok
Most tegyük az Okos gondolatokat. A kód nyitva van és rajta van
A projekt klónozása és a függőségek telepítése:
git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i
Végezze el a szükséges módosításokat a fájlon index.js (opcionális; nem kell semmit módosítania). Teremt postai irányítószám-archívum, fájllal index.js és mappa csomópont_modulok belül például a név alatt smart.zip.
Most menjen a konzolunkhoz Yandex funkciók, válassza ki a lapot ZIP archívum, nyomja meg a gombot Válasszon ki egy fájlt, és töltse le archívumunkat smart.zip. Végül a jobb felső sarokban kattintson a gombra Verzió létrehozása.
Néhány másodperc múlva, amikor a funkció frissül, újra teszteljük a botunkat. Most már nem „tükrözik”, hanem okos gondolatokat szállít!
Ez minden mára. További cikkek következnek. Ha szeretné elolvasni ezt, iratkozzon fel az új cikkekről szóló értesítésekre. Feliratkozhat itt, vagy a címen Telegram-csatorna
referenciák
Adományok
Forrás: will.com