Avui, a partir de materials de rebuig, muntarem https://api.telegram.org/
. Bé, no ho farem, no, no. Després de tot, a la nostra bossa hi ha els anomenats. webhooks — Amb la seva ajuda, no fem sol·licituds a una adreça específica, sinó que simplement enviem la nostra sol·licitud com a resposta a qualsevol sol·licitud que ens enviem. És a dir, com a Odessa, responem una pregunta amb una pregunta. Aixo es perqué API de Telegram no apareixerà al nostre codi.
Exempció de responsabilitatEls noms de qualsevol organització governamental esmentada en aquest article són ficticis i les possibles coincidències amb els noms d'organitzacions de la vida real són casuals.
Per tant, farem un bot que ens proporcionarà pensaments intel·ligents. Exactament com a la imatge:
Podeu provar-ho en acció: aquí teniu el nom: @SmartThoughtsBot. Vaig notar el botó "L'habilitat d'Alícia"? Això es deu al fet que el bot és una mena de "company" per al bot del mateix nom. L'habilitat d'Alícia, és a dir fa les mateixes funcions que L'habilitat d'Alícia i és possible que puguin conviure pacíficament fent-se publicitat mútuament. Sobre com crear habilitat Pensaments intel·ligents descrit a l'article
Creació d'un bot
M'agradaria que aquest tutorial fos útil per a tothom, incl. i constructors de bots novells. Per tant, en aquesta secció descriuré amb cert detall com crear en general telegramels bots. Per a aquells que no necessiten aquesta informació, aneu a les seccions següents.
Obriu l'aplicació Telegaram, anomenem el pare de tots els bots (ho tenen tot com persones) - @BotFather - i primer li donarem l'ordre /help per refrescar-li la memòria del que podem fer. Ara ens interessarà l'equip / newbot.
Com que el bot descrit aquí ja s'ha creat, amb finalitats de demostració crearé un altre bot durant un breu temps (i després el suprimiré). El trucaré DemoHabrBot. Noms (nom d'usuari) de tots els robots de telegram ha d'acabar amb la paraula bot, per exemple: MyCoolBot o my_cool_bot - això és per a robots. Però primer li donem un nom al bot (nom) - i això és per a la gent. El nom pot estar en qualsevol idioma, contenir espais i no ha d'acabar amb una paraula bot, i ni tan sols ha de ser únic. En aquest exemple, he anomenat aquest bot Demo Habr.
Ara trieu un nom per al bot (nom d'usuari, el dels robots). Anem a cridar-lo DemoHabrBot. Tot el relacionat amb el nom del bot (nom) no té cap relació amb el seu nom - nom d'usuari (o s'aplica, però exactament el contrari). Després de crear correctament un nom de bot únic, hem de copiar i desar (amb la màxima confidencialitat!) el testimoni que es mostra a la captura de pantalla amb una fletxa vermella. Amb la seva ajuda establirem posteriorment l'origen telegram'un webhook al nostre Funció Yandex.
Ara donem l'ordre al pare de tots els bots: /mybots, i ens mostrarà una llista de tots els bots que hem creat. Deixem el bot acabat de fer en pau de moment Demo Habr (va ser creat per mostrar com crear bots, però avui també l'utilitzarem per a altres propòsits de demostració), i mirem el bot Pensaments intel·ligents (@SmartThoughtsBot). Feu clic al botó amb el seu nom a la llista de robots.
Aquí podem configurar el nostre bot. En prémer el botó Edita… Passarem a editar una o altra opció. Per exemple, fent clic al botó Edita el nom podem canviar el nom del bot, per exemple Pensaments intel·ligents, escriure Idees boges. Botpic - aquest és l'avatar del bot, ha de ser com a mínim 150 x 150 px. Descripció — aquesta és una breu descripció que l'usuari veu quan s'inicia el bot per primera vegada, com a resposta a la pregunta: Què pot fer aquest bot? Qui som? — una descripció encara més breu, que es transmet amb un enllaç al bot (https://t.me/SmartThoughtsBot
) o en visualitzar informació al respecte.
Tot el que hem de fer és configurar les ordres. Per fer-ho, premeu el botó Edita les ordres. Estandarditzar la pràctica dels usuaris telegram recomana utilitzar sempre dues ordres: /començar и / help, i si el bot necessita configuració, utilitzeu l'ordre addicional /settings. El nostre bot és tan senzill com una pilota, de manera que encara no necessita cap configuració. Escrivim les dues primeres ordres, que després processarem en codi. Ara, si l'usuari introdueix una barra inclinada (signe de barra inclinada: /) al camp d'entrada, apareixerà una llista d'ordres per a una selecció ràpida. Tot és com a la imatge: a l'esquerra: instal·lem ordres a través del bot pare; a la dreta, aquestes ordres ja estan disponibles per als usuaris del nostre bot.
Funció Yandex
Ara que s'ha creat el nostre bot, anem a Yandex.Cloudper crear una funció que executarà el codi del nostre bot. Si no has treballat amb Yandex.Cloud llegir el material
Així que a la consola Yandex.Cloud al menú de navegació esquerre, seleccioneu l'element Funcions al núvol, i després premeu el botó Crea una funció. Li donem un nom i una breu descripció per a nosaltres mateixos.
Després de prémer el botó crear i al cap d'un parell de segons, la nova funció apareixerà a la llista de totes les funcions. Feu clic al seu nom; això ens portarà a la pàgina visió de conjunt la nostra funció. Aquí heu d'habilitar (On) interruptor funció públicade manera que sigui accessible des de l'exterior (per a Yandex.Cloud) del món, i el significat dels camps Enllaç per trucar и Идентификатор — Mantingueu-lo en secret per a tothom, excepte per a vosaltres mateixos i Telegram, de manera que diversos estafadors no puguin cridar la vostra funció.
Ara, utilitzant el menú de l'esquerra, aneu a L'editor funcions. Deixem de banda per un moment el nostre Pensaments intel·ligents, i crear una funció de plantilla mínima per comprovar la funcionalitat del nostre bot... No obstant això, en aquest context, aquesta funció és el nostre bot... En resum, ara i aquí mateix farem un bot senzill que farà un "mirall" ( és a dir, enviar de tornada les sol·licituds dels usuaris. Aquesta plantilla sempre es pot utilitzar quan es creen nous robots de telegram per assegurar-se que es comunica amb Telegrama'ohm funciona bé. Feu clic Crea un fitxer, cridem-lo index.js, i en línia Editor de codi enganxeu el codi següent en aquest fitxer:
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 la consola Yandex.Cloud hauria de semblar a això:
Més avall us indiquem Punt d'entrada - index.botOn index aquest és el nom del fitxer (index.js), i bot - nom de la funció (module.exports.bot). Deixeu tots els altres camps com estan i feu clic al botó de la cantonada superior dreta Crea una versió. En pocs segons es crearà aquesta versió de la funció. Poc després de la prova webhook, crearem una nova versió − Pensaments intel·ligents.
Emmagatzematge d'objectes
Ara que hem creat Funció Yandex, va, mentre estem a la consola Yandex.Cloud, creem l'anomenat cubell (cub, és a dir galleda en rus, no és un ram) per emmagatzemar fitxers d'imatge que s'utilitzaran al nostre bot Pensaments intel·ligents. Al menú de navegació esquerre, seleccioneu l'element Emmagatzematge d'objectes, prem el botó Crea una galleda, doneu-li un nom, per exemple, img-cubeta, i, el més important, Accés de lectura als objectes Ho fem públic; en cas contrari, Telegram no veurà les nostres imatges. Deixem tots els altres camps sense canvis. prem el botó Crea una galleda.
Després d'això, la llista de tots els cubs podria semblar a això (si aquest és el vostre únic cub):
Ara us suggereixo fer clic al nom de la galleda i crear-hi una carpeta per organitzar l'emmagatzematge d'imatges per a les vostres diferents aplicacions. Per exemple, per a un bot de telegram Pensaments intel·ligents Vaig crear una carpeta anomenada tg-bot-smart-thoughts (res, entendré aquest codi). Creeu-ne un també.
Ara podeu fer clic al nom de la carpeta, entrar-hi i pujar fitxers:
I fent clic al nom del fitxer, obteniu-lo URL per utilitzar-lo al nostre bot i, en general, a qualsevol lloc (però no publiqueu això URL innecessari, ja que el trànsit des de Emmagatzematge d'objectes carregat).
Això és bàsicament tot el que hi ha Emmagatzematge d'objectes. Ara sabreu què heu de fer quan vegeu un missatge per carregar fitxers allà.
Webhook
Ara instal·larem webhook - és a dir quan el bot rep una actualització (per exemple, un missatge d'un usuari) del servidor telegram al nostre Funció Yandex s'enviarà una sol·licitud (sol · licitar) amb dades. Aquí teniu una línia que podeu enganxar simplement al camp d'adreça del vostre navegador i després actualitzar la pàgina (només ho heu de fer una vegada): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Només el substituirem {bot_token} al testimoni que vam rebre del bot pare en crear el nostre bot, i {webhook_url} - encès URL el nostre Funcions Yandex. Espera un minut! Però RossKomTsenzur prohibeix als proveïdors de la Federació Russa el servei de l'adreça https://api.telegram.org
. Sí, és correcte. Però proposa alguna cosa. Al cap i a la fi, podeu, per exemple, preguntar-ho a la vostra àvia a Ucraïna, Israel o Canadà: no hi ha "Rosskomcensorship" i només Déu sap com viu la gent sense ella. Com a resultat, la sol·licitud-resposta quan s'instal·la un webhook hauria de ser així:
Estem provant. Hauria de "mirar".
Això és cert. Les nostres felicitacions - ara Funció Yandex s'ha convertit telegram-bot!
Pensaments intel·ligents
Ara fem Smart Thoughts. El codi està obert i es troba
Clonar el projecte i instal·lar dependències:
git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i
Feu els canvis que necessiteu al fitxer index.js (opcional; no cal que canvieu res). Crear cremallera-arxiu, amb arxiu index.js i carpeta mòduls_node dins, per exemple, sota el nom smart.zip.
Ara aneu a la consola al nostre Funcions Yandex, seleccioneu la pestanya Arxiu ZIP, prem el botó Seleccioneu un fitxer, i descarregueu el nostre arxiu smart.zip. Finalment, a l'extrem superior dret, feu clic al botó Crea una versió.
En uns segons, quan s'actualitzi la funció, tornarem a provar el nostre bot. Ara ja no "miralls", sinó que ofereix pensaments intel·ligents!
Això és tot per avui. Més articles a continuació. Si t'interessa llegir això, subscriu-te a les notificacions sobre nous articles. Pots subscriure't aquí, o a telegram-canal
Referències
Donacions
Font: www.habr.com