Custruì un bot Telegram in Yandex.Cloud

Custruì un bot Telegram in Yandex.Cloud

Oghje, da materiali improvisati, culleremu in Yandex.Cloud Telegram bot aduprendu Funzioni di Yandex Cloud (o Funzioni Yandex per brevità) è Storage d'oggetti Yandex (o Storage d'ughjettu - per a chiarezza). U codice sarà attivu Node.js. Tuttavia, ci hè una circustanza piquant - una certa urganizazione chjamata, per dì, RossKomCensura (A censura hè pruibita da l'articulu 29 di a Custituzione di a Federazione Russa), ùn permette micca à i fornitori di Internet in Russia di trasfiriri richieste à API di Telegram da l'indirizzu: https://api.telegram.org/. Ebbè, ùn avemu micca - nò, nò. Infatti, in u nostru saccu ci sò cusì chjamati. webhooks - cù u so aiutu, ùn facemu micca dumande à un indirizzu specificu, ma solu mandà a nostra dumanda cum'è una risposta à ogni dumanda à noi. Questu hè, cum'è in Odessa - rispondimu una quistione cù una dumanda. Hè perchè API di Telegram ùn apparirà micca in u nostru codice.

DisclaimerI nomi di ogni urganisazione statali citati in questu articulu sò fittizi, è i pussibuli coincidenze cù i nomi di l'urganisazioni di a vita reale sò accidentali.

Allora, faremu un bot chì ci furnisce penseri intelligenti. Esattamente cum'è in a stampa:

Custruì un bot Telegram in Yandex.Cloud

Pudete pruvà in azzione - quì hè u nome: @SmartThoughtsBot. Avvisu u buttone "L'abilità di Alice"? Questu hè chì u bot hè un tipu di "cumpagnu" per l'eponimu L'abilità di Alice, i.e. esegue e stesse funzioni cum'è L'abilità di Alice è, forse, ch'elli ponu coesiste pacificamenti publicità l'altri. Circa quantu à creà Abilità di u pensamentu intelligente descrittu in l'articulu Alice riceve l'abilità. Avà (dopu à fà qualchi cambiamenti dopu à a publicazione di l'articulu sopra) in un smartphone questu cumpetenza parerà qualcosa cusì:

Custruì un bot Telegram in Yandex.Cloud

Creazione di bot

Vogliu chì stu tutoriale sia utile à tutti, incl. è principianti "costruttori di bot". Dunque, in questa sezione, vi descriverà in qualchì dettagliu cumu creà in generale in n'ambasciata'e bots. Per quelli chì ùn anu micca bisognu di sta infurmazione, andate à e sezioni seguenti.

Aprite l'applicazione Telegaram, chjamemu u babbu di tutti i bots (anu tuttu cum'è e persone) - @Corse_Matin - è per principià, li daremu u cumandamentu / aiutu per rinfriscà a nostra memoria di ciò chì pudemu fà. Avà avemu interessatu in a squadra / newbot.

Custruì un bot Telegram in Yandex.Cloud

Siccomu u bot descrittu quì hè digià statu creatu, per scopi di dimostrazione, aghju da creà un altru bot per un pocu tempu (poi l'eliminaraghju). U chjamaraghju DemoHabrBot. nomi (gatti) tutti i bots di telegram deve finisce cù una parolla B bot, per esempiu: MyCoolBot o my_cool_bot Questu hè per i bots. Ma prima, dà un nome à u bot (Cognome) hè per e persone. U nome pò esse in ogni lingua, cuntene spazii, ùn deve micca finisce cù una parolla B bot, è ùn deve mancu esse unicu. In questu esempiu, aghju chjamatu stu bot Demo Habr.

Custruì un bot Telegram in Yandex.Cloud

Avà sceglite un nome per u bot (gatti, quellu per i bots). Chjamemu DemoHabrBot. Tuttu ciò chì riguarda u nome di u bot (Cognome) ùn hè micca in relazione cù u so nome - gatti (o si applica, ma esattamente u cuntrariu). Dopu avè creatu successu un nome di bot unicu, avemu bisognu di copià è salvà (in a più stretta fiducia!) U token mostratu in a screenshot cù una freccia rossa. Cù u so aiutu, avemu da stallà dopu u outgoing n'ambasciata'un webhook à u nostru funzione Yandex.

Custruì un bot Telegram in Yandex.Cloud

È avà daremu u cumandamentu à u babbu di tutti i bots: / mybotsè ci mostrarà una lista di tutti i bots chì avemu creatu. Lasciamu u bot appena sfornatu solu per avà Demo Habr (hè statu creatu per dimustrà cumu creà bots, ma l'avemu aduprà oghje per altri scopi demo), è cunzidira u bot Pensieri intelligenti (@SmartThoughtsBot). Cliccate u buttone cù u so nome in a lista di bots.

Custruì un bot Telegram in Yandex.Cloud

Questu hè induve pudemu stabilisce u nostru bot. Spingendu un buttone Edità ... andemu à edità una o una altra opzione. Per esempiu, clicchendu nant'à u buttone Mudificà Nome pudemu cambià u nome di u bot, dì invece di Pensieri intelligenti, scrivi idee pazze. Botpic - questu hè l'avatar di u bot, deve esse almenu 150 x 150 px. Description hè una breve descrizzione chì l'utilizatore vede quandu u bot hè lanciatu per a prima volta, cum'è una risposta à a quistione: Chì pò fà stu bot? prupòsitu di lu - una descrizzione ancu più corta, chì hè trasmessa cù un ligame à u bot (https://t.me/SmartThoughtsBot) o quandu vede l'infurmazioni nantu à questu.

Custruì un bot Telegram in Yandex.Cloud

Avemu solu bisognu di stallà i cumandamenti. Per fà questu, appughjà u buttone Edite cumandamenti. Per standardizà e pratiche di l'utilizatori n'ambasciata ricumanda sempre aduprà dui cumandamenti: / principià и / aiutu, è se u bot hà bisognu di paràmetri, un cumandamentu supplementu / settings. U nostru bot hè simplice cum'è una bola, per quessa ùn hà micca bisognu di paràmetri. Scrivemu i primi dui cumandamenti, chì avemu da processà in u codice. Avà, se l'utilizatore inserisce un slash (carattere slash: /) in u campu di input, una lista di cumandamenti appariscerà per a so scelta rapida. Tuttu hè cum'è in a stampa: à a manca - avemu stabilitu cumandamenti attraversu u bot-patri; à a diritta, sti cumandamenti sò digià dispunibili per l'utilizatori in u nostru bot.

Custruì un bot Telegram in Yandex.Cloud

funzione Yandex

Avà chì u nostru bot hè statu creatu, andemu à Yandex.Cloudper creà una funzione chì eseguisce u nostru codice bot. Se ùn avete micca travagliatu cù Yandex.Cloud leghje u materiale Alice in a terra di Bitrix, è dopu - Funzioni Yandex mandanu mail. Sò quasi sicuru chì sti dui articuli relativamente chjuchi seranu abbastanza per avè una cunniscenza di basa di u sughjettu.

Allora in a cunsola Yandex.Clouds in u menu di navigazione di manca, selezziunate l'elementu Funzioni Cloud, è dopu appughjà u buttone Crea una funzione. Demu un nome, è per noi - una breve descrizzione.

Custruì un bot Telegram in Yandex.Cloud

Dopu avè pressu u buttone creà è dopu à un paru di sicondi, a nova funzione cumpariscerà in a lista di tutte e funzioni. Cliccate nantu à u so nome - questu ci porta à a pagina riassuntu a nostra funzione. Quì avete bisognu di attivàOn) cambia funzione publicaper rende dispunibule da l'esterno (per Yandex.Clouds) di u mondu, è u valore di i campi Ligame per chjamà и Identificatore - Mantene in segretu prufondu da tutti, eccettu sè stessu è Telegram, per chì diversi truffatori ùn ponu micca chjamà a vostra funzione.

Custruì un bot Telegram in Yandex.Cloud

Avà usendu u menù di manca andate à U editore funzioni. Lasciamu da parte per un mumentu u nostru Pensieri intelligenti, è creanu una funzione di mudellu minimu per verificà a prestazione di u nostru bot ... Tuttavia, in questu cuntestu, sta funzione hè u nostru bot ... In breve, avà è quì, faremu u bot più simplice chì "spechjarà" ( vale à dì rinvià) richieste di l'utilizatori. Stu mudellu pò esse sempre usatu quandu creanu novi bots di telegramma per assicurà chì a cumunicazione cù telegramma'om funziona bè. Cliccate Crea u schedariu, chjamate index.js, è in linea Editore di codice incollà u codice seguente in stu schedariu:

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

In a cunsola Yandex.Cloud, deve esse simile à questu:

Custruì un bot Telegram in Yandex.Cloud

Sottu, indichemu puntu di entrata - index.botinduve accogliu questu hè u nome di file (index.js), a B bot - nome di a funzione (module.exports.bot). Lascià tutti l'altri campi "cum'è", è in l'angulu superiore dirittu cliccate u buttone Crea a versione. Dopu à qualchi seconde, sta versione di a funzione sarà creatu. Pocu dopu a prova webhook, creeremu una nova versione - Pensieri intelligenti.

Custruì un bot Telegram in Yandex.Cloud

Storage d'ughjettu

Avà chì avemu stabilitu funzione Yandexandemu mentre simu in a cunsola Yandex.Clouds, creà un cusì chjamatu. bucket (benna, i.e. bucket in russo, senza mancu un bouquet) per almacenà i fugliali di l'imaghjini chì seranu utilizati in u nostru bot Pensieri intelligenti. Sceglite da u menù di navigazione di manca Conservazione di l'ogni, appughjà u buttone Crea un bucket, dà un nome, per esempiu, img-bucket, è, più impurtante, Leghjite l'accessu à l'uggetti rende publicu - altrimenti Telegram ùn vede micca i nostri ritratti. Tutti l'altri campi sò lasciati invariati. Premu u buttone Crea un bucket.

Custruì un bot Telegram in Yandex.Cloud

Dopu quì, una lista di tutti i buckets pò vede qualcosa cusì (se questu hè u vostru solu bucket):

Custruì un bot Telegram in Yandex.Cloud

Avà pruponu di cliccà nantu à u nome di u bucket, è creà un cartulare in ellu per urganizà l'almacenamiento di ritratti per diverse applicazioni. Per esempiu, per un telegram bot Pensieri intelligenti Aghju creatu un cartulare chjamatu tg-bot-smart-thoughts (Nunda, capiraghju stu cifru). Crea ancu unu.

Custruì un bot Telegram in Yandex.Cloud

Avà pudete cliccà nantu à u nome di u cartulare, andate in ellu è caricate i fugliali:

Custruì un bot Telegram in Yandex.Cloud

È clicchendu nantu à u nome di u schedariu - uttene URL per l'usu in u nostru bot, è in generale - in ogni locu (ma ùn pubblicate micca questu URL inutilmente, postu chì u trafficu da almacenamiento d'uggetti accusatu).

Custruì un bot Telegram in Yandex.Cloud

Quì, in fatti, hè tuttu almacenamiento d'uggetti. Avà sapete ciò chì deve fà quandu vi vede u prompt à carica i schedari ci.

Webhook

Avà avemu da stallà webhook - i.e. quandu u bot riceve una aghjurnazione (per esempiu, un missaghju da l'utilizatore), da u servitore n'ambasciata in u nostru funzione Yandex a dumanda sarà mandatadumanda) cù dati. Eccu una stringa chì pudete semplicemente incollà in u campu di l'indirizzu di u navigatore, è dopu rinfriscà a pagina (questu solu deve esse fattu una volta): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Basta à rimpiazzà {bot_token} à u token avemu ricevutu da u babbu bot quandu crea u nostru bot, è {webhook_url} - accantu URL u nostru Funzioni Yandex. Aspetta un minutu ! Ma RossKomCensura pruibisce i fornituri in a Federazione Russa di serve l'indirizzu https://api.telegram.org. Iè, hè ghjustu. Ma pudete pensà à qualcosa. Dopu tuttu, pudete, per esempiu, dumandà à a vostra nanna nantu à questu in Ucraina, Israele o Canada - ùn ci hè micca "censura russa", è solu Diu sà cumu a ghjente vive senza ellu. In u risultatu, a dumanda-risposta quandu installate u webhook deve esse cusì:

Custruì un bot Telegram in Yandex.Cloud

Testing. Deve esse spechju.

Custruì un bot Telegram in Yandex.Cloud

Questu hè veru. I nostri felicitazioni - avà funzione Yandex hè diventatu n'ambasciata-bot!

Pensieri intelligenti

È avà facemu Smart Thoughts. U codice hè apertu è si trova GitHub. Hè abbastanza bè cummentatu, è hè solu centu linee longu. Leghjite cum'è un librettu di diva d'opera !

Custruì un bot Telegram in Yandex.Cloud

Clone u prugettu è installate e dipendenze:

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

Fate i cambiamenti chì avete bisognu à u schedariu index.js (opcional; ùn pudete micca cambià nunda). Crià pustale-archiviu, cù un schedariu index.js è u cartulare node_moduli dentru, per esempiu, chjamatu smart.zip.

Custruì un bot Telegram in Yandex.Cloud

Avà andate in a cunsola à u nostru Funzioni Yandex, selezziunate a tabulazione archiviu ZIP, appughjà u buttone Selezziunà un schedariuè scaricate u nostru archiviu smart.zip. Infine, in l'angulu superiore destra, cliccate nantu à u buttone Crea a versione.

Custruì un bot Telegram in Yandex.Cloud

In pochi sicondi, quandu a funzione hè aghjurnata, testeremu u nostru bot di novu. Avà ùn hè più "specchi", ma dà pinsamenti intelligenti!

Custruì un bot Telegram in Yandex.Cloud

Hè tuttu per oghje. Altri articuli seguitanu. Sè site interessatu à leghje questu, abbonate à notifiche di novi articuli. Pudete abbonate quì o n'ambasciata-canale Tutorial IT Zakharo Twitter @mikezaharov.

referenze

Codice nantu à GitHub
Funzioni di Yandex Cloud
Storage d'oggetti Yandex
Bots: una introduzione per i sviluppatori
Telegram Bot API

Donazioni

Custruì un bot Telegram in Yandex.Cloud

Source: www.habr.com

Add a comment