Bauen en Telegram Bot an Yandex.Cloud

Bauen en Telegram Bot an Yandex.Cloud

Haut, aus Schrottmaterial, wäerte mir montéieren Yandex.Cloud Telegram Bot benotzen Yandex Cloud Funktiounen (oder Yandex Funktiounen - kuerz) an Yandex Objektlagerung (oder Objet Stockage - fir Kloerheet). De Code wäert op Node.js. Wéi och ëmmer, et gëtt eng pikant Ëmstänn - eng gewësse Organisatioun genannt, loosst eis soen, RossKomTsenzur (Zensur ass vum Artikel 29 vun der Verfassung vun der russescher Federatioun verbueden), erlaabt net russesch Internet Ubidder Ufroen ze vermëttelen Telegram API vun der Adress: https://api.telegram.org/. Gutt, mir wäerten net - nee, nee. Iwwerhaapt, an eiser Täsch sinn sougenannte. webhooks - mat hirer Hëllef maache mir keng Ufroe op eng spezifesch Adress, mee schécken eis einfach eis Ufro als Äntwert op all Ufro un eis. Dat ass, wéi an Odessa, mir äntweren eng Fro mat enger Fro. Dat ass wouvir Telegram API wäert net an eisem Code schéngen.

VerzichterklärungD'Nimm vun all Regierungsorganisatiounen, déi an dësem Artikel ernimmt sinn, sinn fiktiv, a méiglech Mätscher mat den Nimm vun real-Liewen Organisatiounen sinn zoufälleg.

Also, mir wäerte e Bot maachen deen eis intelligent Gedanken gëtt. Genau wéi op der Foto:

Bauen en Telegram Bot an Yandex.Cloud

Dir kënnt et an Aktioun probéieren - hei ass den Numm: @SmartThoughtsBot. Gemierkt de Knäppchen "Alice seng Fäegkeet"? Dëst ass well de Bot eng Aart "Begleeder" ass fir de Bot mam selwechten Numm. Alice seng Fäegkeet, d.h. et mécht déi selwecht Funktiounen wéi Alice seng Fäegkeet an et ass méiglech datt si fäeg sinn friddlech zesummen ze existéieren andeems se géigesäiteg Reklamm maachen. Iwwert wéi ze schafen Fäegkeet Smart Gedanken am Artikel beschriwwen Alice gewënnt Fäegkeet. Elo (nodeems e puer Ännerungen no der Verëffentlechung vum uewe genannten Artikel gemaach hunn) um Smartphone dëst Fäegkeet wäert sou eppes ausgesinn:

Bauen en Telegram Bot an Yandex.Cloud

E Bot erstellen

Ech hätt gär datt dësen Tutorial fir jiddereen nëtzlech ass, inkl. an Ufänger Bot Builder. Dofir, an dëser Rubrik wäert ech am Detail beschreiwen wéi am Allgemengen ze schafen Hëllefe profitéierenan bots. Fir déi, déi dës Informatioun net erfuerderen, fuert weider op déi folgend Rubriken.

Öffnen d'Applikatioun Telegaram, ruffe mer de Papp vun alle Bots (si hunn alles wéi Leit) - @BotPater - an als éischt gi mir him de Kommando /help fir seng Erënnerung opzefrëschen wat mir maache kënnen. Elo wäerte mir fir d'Equipe interesséiert sinn / Neibot.

Bauen en Telegram Bot an Yandex.Cloud

Well de Bot, deen hei beschriwwe gëtt, scho geschaf gouf, wäert ech fir Demonstratiounszwecker fir eng kuerz Zäit en anere Bot erstellen (an en dann läschen). Ech ruffen him un DemoHabrBot. Nimm (Benotzernumm) vun all Telegram Bots mussen mam Wuert ophalen Bot, zum Beispill: MyCoolBot oder meng_cool_bot - dëst ass fir Bots. Awer als éischt gi mir dem Bot en Numm (Numm) - an dëst ass fir Leit. Den Numm kann an all Sprooch sinn, Plazen enthalen a muss net mat engem Wuert ophalen Bot, a muss och net eenzegaarteg sinn. An dësem Beispill hunn ech dëse Bot genannt Demo Habr.

Bauen en Telegram Bot an Yandex.Cloud

Wielt elo en Numm fir de Bot (Benotzernumm, dee fir Bots). Loosst eis him ruffen DemoHabrBot. Alles am Zesummenhang mam Numm vum Bot (Numm) bezitt sech guer net op säin Numm - Benotzernumm (oder gëllt, awer genee de Géigendeel). Nodeems mir erfollegräich en eenzegaartege Bot-Numm erstallt hunn, musse mir kopéieren a späicheren (am strengsten Vertrauen!) Den Token, deen am Screenshot mat engem roude Pfeil gewise gëtt. Mat senger Hëllef wäerte mir spéider d'Origine feststellen Hëllefe profitéieren'e Webhook fir eis Yandex Funktioun.

Bauen en Telegram Bot an Yandex.Cloud

Loosst eis de Kommando dem Papp vun all Bots ginn: /mybots, an et wäert eis eng Lëscht vun all de Bots weisen, déi mir erstallt hunn. Loosst eis de frëschgebakene Bot elo eleng eleng loossen Demo Habr (Et gouf erstallt fir ze weisen wéi een Bots erstellt, awer mir wäerten et och haut fir aner Demonstratiounszwecker benotzen), a loosst eis de Bot kucken Smart Gedanken (@SmartThoughtsBot). Klickt op de Knäppchen mat sengem Numm an der Lëscht vu Bots.

Bauen en Telegram Bot an Yandex.Cloud

Hei kënne mir eise Bot konfiguréieren. Andeems Dir op de Knäppchen dréckt Ännere… Mir wäerte weidergoen fir eng oder aner Optioun z'änneren. Zum Beispill, andeems Dir op de Knäppchen klickt Numm änneren mir kënnen den Numm vun der Bot änneren, sot amplaz Smart Gedanken, schreiwen Crazy Iddien. Botpic - dëst ass den Avatar vum Bot, muss op d'mannst sinn 150 x 150 px. description - dëst ass eng kuerz Beschreiwung déi de Benotzer gesäit wann de Bot fir d'éischte Kéier start, als Äntwert op d'Fro: Wat kann dëse Bot maachen? Iwwer - eng nach méi kuerz Beschreiwung, déi mat engem Link op de Bot iwwerdroen gëtt (https://t.me/SmartThoughtsBot) oder wann Dir Informatioun doriwwer kuckt.

Bauen en Telegram Bot an Yandex.Cloud

Alles wat mir maache mussen ass d'Befehle setzen. Fir dëst ze maachen, dréckt op de Knäppchen Edit Kommandoen. Fir d'Benotzerpraxis ze standardiséieren Hëllefe profitéieren recommandéiert ëmmer zwee Kommandoen ze benotzen: / ufänken и / hëllefen, a wann de Bot Astellunge brauch, benotzt den zousätzleche / Settings Kommando. Eise Bot ass sou einfach wéi e Ball, sou datt et nach keng Astellunge brauch. Mir schreiwen déi éischt zwee Kommandoen, déi mir dann am Code veraarbecht. Elo, wann de Benotzer e Slash (Slash Zeechen: /) am Input Feld agitt, erschéngt eng Lëscht vu Kommandoen fir séier Auswiel. Alles ass wéi am Bild: lénks - mir installéieren Kommandoen duerch de Papp Bot; op der rietser Säit sinn dës Befehle scho fir Benotzer an eisem Bot verfügbar.

Bauen en Telegram Bot an Yandex.Cloud

Yandex Funktioun

Elo datt eise Bot erstallt gouf, loosst eis goen Yandex.Cloudfir eng Funktioun ze kreéieren déi de Code vum Bot ausféiert. Wann Dir net geschafft hutt mat Yandex.Cloud liesen d'Material Alice am Land vun Bitrix, an dann - Yandex Funktiounen schécken Mail. Ech si ganz sécher datt dës zwee relativ kuerz Artikelen genuch sinn fir Iech e Grondverständnis vum Thema ze hunn.

Also an der Konsole Yandex.Cloud am lénksen Navigatiounsmenü wielt den Artikel Cloud Funktiounen, an dann Press de Knäppchen Schafen eng Funktioun. Mir ginn et en Numm an eng kuerz Beschreiwung fir eis selwer.

Bauen en Telegram Bot an Yandex.Cloud

Nodeems Dir de Knäppchen gedréckt hutt schafen an no e puer Sekonnen erschéngt déi nei Funktioun an der Lëscht vun alle Funktiounen. Klickt op hiren Numm - dëst bréngt eis op d'Säit Iwwersiicht eis Funktioun. Hei musst Dir aktivéieren (On) schalt Ëffentlech Funktiounsou datt et vun externen zougänglech gëtt (fir Yandex.Cloud) vun der Welt, an d'Bedeitung vun de Felder Uruff Link и Identifizéierer - Halt et zudéifst geheim vu jidderengem ausser Iech selwer an Telegram, sou datt Är Funktioun net vu verschiddene Scammers opgeruff ka ginn.

Bauen en Telegram Bot an Yandex.Cloud

Elo, mam lénksen Menü, gitt op De Redaktor Funktiounen. Loosst eis e Moment op der Säit setzen Smart Gedanken, an eng minimal Schablounfunktioun erstellen fir d'Funktionalitéit vun eisem Bot z'iwwerpréiwen ... Allerdéngs ass dës Funktioun eise Bot ... Kuerz gesot, elo a grad hei wäerte mir en einfachen Bot maachen deen "spiegelt" ( dh zréckschécken) Benotzerufroen. Dës Schabloun kann ëmmer benotzt ginn wann Dir nei Telegram Bots erstellt fir sécher ze stellen datt d'Kommunikatioun mat Telegram'ohm funktionnéiert gutt. Klickt Schafen Fichier, ruffe mer him index.js, an online Code Editor Paste de folgende Code an dës Datei:

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
  };
};

An der Yandex.Cloud Konsole soll et esou ausgesinn:

Bauen en Telegram Bot an Yandex.Cloud

Weider ënnen uginn mir Entrée Punkt - index.botwou Index dëst ass den Dateinumm (index.js), an Bot - Funktioun Numm (module.exports.bot). Loosst all aner Felder wéi et ass, a klickt op de Knäppchen an der oberer rechter Ecke Versioun erstellen. An e puer Sekonnen gëtt dës Versioun vun der Funktioun erstallt. Geschwënn nom Test webhook, wäerte mir eng nei Versioun erstellen - Smart Gedanken.

Bauen en Telegram Bot an Yandex.Cloud

Objet Stockage

Elo hu mir geschaf Yandex Funktioun, komm, wa mir an der Konsol sinn Yandex.Cloud, Loosst eis de sougenannte Eemer (Eemer, d.h. Eemer op Russesch, guer net e Bouquet) fir Bilddateien ze späicheren déi an eisem Bot benotzt ginn Smart Gedanken. Am lénksen Navigatiounsmenü wielt den Artikel Objekt Storage, Press de Knäppchen Schafen engem Eemer, komm mat engem Numm dofir, zum Beispill, img-Bucketan, am wichtegsten, Liesen Zougang zu Objeten Mir maachen et ëffentlech - soss wäert Telegram eis Biller net gesinn. Mir loossen all aner Felder onverännert. Press de Knäppchen Schafen engem Eemer.

Bauen en Telegram Bot an Yandex.Cloud

Duerno kann d'Lëscht vun all Eemer sou ausgesinn (wann dëst Ären eenzegen Eemer ass):

Bauen en Telegram Bot an Yandex.Cloud

Elo proposéieren ech op den Numm vum Eemer ze klicken an en Dossier dobannen ze kreéieren fir d'Späichere vu Biller fir Är verschidden Uwendungen ze organiséieren. Zum Beispill, fir en Telegram Bot Smart Gedanken Ech hunn en Dossier erstallt genannt tg-Bot-Smart-Gedanken (näischt, ech wäert dëse Code verstoen). Schafen och eng.

Bauen en Telegram Bot an Yandex.Cloud

Elo kënnt Dir op den Dossiernumm klickt, gitt an et an lued Dateien erop:

Bauen en Telegram Bot an Yandex.Cloud

A andeems Dir op den Dateinumm klickt - kritt et URL fir an eisem Bot ze benotzen, an allgemeng - iwwerall (awer publizéiert dëst net URL onnéideg, zënter Verkéier vun Objet Stockage gelueden).

Bauen en Telegram Bot an Yandex.Cloud

Dat ass am Fong alles wat et ass Objet Stockage. Elo wësst Dir wat Dir maache musst wann Dir eng Ufro gesitt fir Dateien do eropzelueden.

Webhook

Elo wäerte mir installéieren webhook - d.h. wann de Bot en Update (zum Beispill e Message vun engem Benotzer) vum Server kritt Hëllefe profitéieren zu eisem Yandex Funktioun eng Demande gëtt geschéckt (Ufro) mat Daten. Hei ass eng Zeil déi Dir einfach an d'Adressfeld vun Ärem Browser pechen kënnt an dann d'Säit erfrëschen (Dir musst dat nëmmen eemol maachen): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Mir ersetzen et just {bot_token} zum Token, dee mir vum Papp Bot kritt hunn, wann Dir eise Bot erstellt, an {webhook_url} - an URL eis Yandex Funktiounen. Waard eng Minutt! Mee RossKomTsenzur verbitt Ubidder an der russescher Federatioun d'Adress ze servéieren https://api.telegram.org. Jo dat ass richteg. Mee komm mat eppes. No all, kënnt Dir, zum Beispill, froen Är Groussmamm iwwer dëst an der Ukraine, Israel oder Kanada - et gi keng "Rosskomcensorship" do, a Gott weess nëmme wéi Leit ouni et liewen. Als Resultat soll d'Ufro-Äntwert beim Installéiere vun engem Webhook esou ausgesinn:

Bauen en Telegram Bot an Yandex.Cloud

Mir testen. Et soll "Spigelen".

Bauen en Telegram Bot an Yandex.Cloud

Dat ass richteg. Eis Félicitatiounen - elo Yandex Funktioun ass geworden Hëllefe profitéieren-bot!

Smart Gedanken

Loosst eis elo Smart Thoughts maachen. De Code ass op a läit op GitHub. Et ass zimlech gutt kommentéiert an ass nëmmen honnert Zeilen laang. Liest et wéi eng Oper Diva Libretto!

Bauen en Telegram Bot an Yandex.Cloud

Klon de Projet an installéiert Ofhängegkeeten:

git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i

Maacht d'Ännerungen déi Dir braucht fir d'Datei index.js (fakultativ; Dir musst näischt änneren). Schafen Hoodie-archiv, mat Fichier index.js an Dossier Node_moduler bannen, zum Beispill, ënnert dem Numm smart.zip.

Bauen en Telegram Bot an Yandex.Cloud

Gitt elo op d'Konsol op eis Yandex Funktiounen, wielt Tab ZIP Archiv, dréckt op de Knäppchen Wielt eng Datei, an download eisen Archiv smart.zip. Endlech, an der oberer rechter Ecke klickt op de Knäppchen Versioun erstellen.

Bauen en Telegram Bot an Yandex.Cloud

An e puer Sekonnen, wann d'Funktioun aktualiséiert gëtt, testen mir eise Bot nach eng Kéier. Elo huet hien net méi "Spigelen", mee liwwert schlau Gedanken!

Bauen en Telegram Bot an Yandex.Cloud

Dat ass alles fir haut. Méi Artikelen no. Wann Dir interesséiert sidd dëst ze liesen, abonnéiert Iech op Notifikatiounen iwwer nei Artikelen. Dir kënnt hei abonnéieren, oder um Hëllefe profitéieren-Kanal IT Tutorial Zakharoder Twitter @mikezaharov.

Referenze

Code op GitHub
Yandex Cloud Funktiounen
Yandex Objektlagerung
Bots: Eng Aféierung fir Entwéckler
Telegram Bot API

Spenden

Bauen en Telegram Bot an Yandex.Cloud

Source: will.com

Setzt e Commentaire