Creando un bot de Telegram en Yandex.Cloud

Creando un bot de Telegram en Yandex.Cloud

Hoxe, a partir de materiais de refugallo, montaremos Yandex.Cloud Telegrama bot usando Funcións de Yandex Cloud (Ou Funcións de Yandex - para abreviar) e Almacenamento de obxectos Yandex (Ou Almacenamento de obxectos - para claridade). O código estará activado Nodo.js. Non obstante, hai unha circunstancia picante: unha determinada organización chamada, digamos, RossKomTsenzur (A censura está prohibida polo artigo 29 da Constitución da Federación Rusa), non permite que os provedores de Internet rusos transmitan solicitudes a API de Telegram polo enderezo: https://api.telegram.org/. Ben, non imos - non, non. Despois de todo, na nosa bolsa hai os chamados. webhooks — coa súa axuda, non realizamos solicitudes a un enderezo específico, senón que simplemente enviamos a nosa solicitude como resposta a calquera solicitude que nos fagamos. É dicir, como en Odessa, respondemos a unha pregunta cunha pregunta. Por iso API de Telegram non aparecerá no noso código.

Exención de responsabilidadeOs nomes das organizacións gobernamentais mencionadas neste artigo son ficticios e as posibles coincidencias cos nomes de organizacións da vida real son coincidencias.

Entón, faremos un bot que nos proporcionará pensamentos intelixentes. Exactamente como na imaxe:

Creando un bot de Telegram en Yandex.Cloud

Podes probalo en acción - aquí está o nome: @SmartThoughtsBot. Notou o botón "A habilidade de Alicia"? Isto ocorre porque o bot é unha especie de "compañeiro" para o bot do mesmo nome. A habilidade de Alicia, é dicir. realiza as mesmas funcións que A habilidade de Alicia e é posible que poidan convivir pacíficamente anunciándose mutuamente. Sobre como crear habilidade Pensamentos intelixentes descrito no artigo Alicia gaña habilidade. Agora (despois de facer algúns cambios despois da publicación do artigo anterior) no teléfono intelixente isto habilidade terá un aspecto así:

Creando un bot de Telegram en Yandex.Cloud

Creando un bot

Gustaríame que este tutorial fose útil para todos, incl. e creadores de bots novatos. Polo tanto, nesta sección describirei con certo detalle como crear en xeral Telegramaos bots. Para aqueles que non precisen esta información, proceda ás seguintes seccións.

Abre a aplicación Telegaram, chamemos ao pai de todos os bots (teñen todo como persoas) - @BotFather - e primeiro darémoslle o comando /help para refrescar a súa memoria do que podemos facer. Agora estaremos interesados ​​no equipo / newbot.

Creando un bot de Telegram en Yandex.Cloud

Dado que xa se creou o bot descrito aquí, para fins de demostración crearei outro bot durante un curto período de tempo (e despois eliminarei). Vou chamalo DemoHabrBot. Nomes (nome de usuario) de todos os robots de telegram debe rematar coa palabra bot, por exemplo: MyCoolBot ou meu_cool_bot - isto é para bots. Pero primeiro damos un nome ao bot (nome) - e isto é para as persoas. O nome pode estar en calquera idioma, conter espazos e non ten que rematar cunha palabra bot, e nin sequera ten que ser único. Neste exemplo, chamei este bot Demo Habr.

Creando un bot de Telegram en Yandex.Cloud

Agora escolla un nome para o bot (nome de usuario, o dos bots). Imos chamalo DemoHabrBot. Todo o relacionado co nome do bot (nome) non se relaciona en absoluto co seu nome - nome de usuario (ou aplícase, pero exactamente o contrario). Despois de crear con éxito un nome de bot único, necesitamos copiar e gardar (coa máis estrita confianza!) o token que se mostra na captura de pantalla cunha frecha vermella. Coa súa axuda estableceremos posteriormente o procedente de Telegrama'un webhook para o noso función Yandex.

Creando un bot de Telegram en Yandex.Cloud

Agora imos dar o comando ao pai de todos os bots: /meus robots, e amosaranos unha lista de todos os bots que creamos. Deixemos o bot recén cocido en paz polo momento Demo Habr (creouse para mostrar como crear bots, pero tamén o usaremos hoxe para outros fins de demostración), e vexamos o bot Pensamentos intelixentes (@SmartThoughtsBot). Fai clic no botón co seu nome na lista de bots.

Creando un bot de Telegram en Yandex.Cloud

Aquí podemos configurar o noso bot. Premendo o botón Editar ... Pasaremos a editar unha ou outra opción. Por exemplo, facendo clic no botón Editar nome podemos cambiar o nome do bot, por exemplo Pensamentos intelixentes, escribe Ideas tolas. Botpic - Este é o avatar do bot, debe ser polo menos 150 x 150 px. descrición — Esta é unha breve descrición que o usuario ve cando inicia o bot por primeira vez, como resposta á pregunta: Que pode facer este bot? sobre — unha descrición aínda máis breve, que se transmite cunha ligazón ao bot (https://t.me/SmartThoughtsBot) ou ao ver información sobre el.

Creando un bot de Telegram en Yandex.Cloud

Todo o que temos que facer é configurar os comandos. Para iso, prema o botón Editar comandos. Para estandarizar a práctica dos usuarios Telegrama recomenda usar sempre dous comandos: /comezo и / axuda, e se o bot necesita axustes, use o comando adicional /settings. O noso bot é tan sinxelo coma unha pelota, polo que aínda non precisa ningunha configuración. Escribimos os dous primeiros comandos, que logo procesaremos en código. Agora, se o usuario introduce unha barra (sinal de barra: /) no campo de entrada, aparecerá unha lista de comandos para a selección rápida. Todo é como na imaxe: á esquerda: instalamos comandos a través do bot pai; á dereita, estes comandos xa están dispoñibles para os usuarios do noso bot.

Creando un bot de Telegram en Yandex.Cloud

función Yandex

Agora que se creou o noso bot, imos a Yandex.Cloudpara crear unha función que executará o código do noso bot. Se non traballaches Yandex.Cloud ler o material Alicia no país de Bitrix, e logo - As funcións de Yandex envían correo. Estou bastante seguro de que estes dous artigos relativamente breves serán suficientes para que teñas unha comprensión básica do tema.

Entón, na consola Yandex.Cloud no menú de navegación esquerdo, seleccione o elemento Funcións na nubee, a continuación, prema o botón Crear unha función. Dámoslle un nome e unha pequena descrición para nós mesmos.

Creando un bot de Telegram en Yandex.Cloud

Despois de premer o botón crear e despois dun par de segundos, a nova función aparecerá na lista de todas as funcións. Fai clic no seu nome; isto levaranos á páxina Comentar nosa función. Aquí tes que activar (On) interruptor Función públicapara que sexa accesible desde o exterior (por Yandex.Cloud) do mundo, e o significado dos campos Ligazón de chamada и ID — mantelo en segredo para todos, excepto para ti e Telegram, para que varios estafadores non poidan chamar a túa función.

Creando un bot de Telegram en Yandex.Cloud

Agora, usando o menú da esquerda, vai a O editor funcións. Deixemos por un momento o noso Pensamentos intelixentes, e crear unha función de modelo mínima para comprobar a funcionalidade do noso bot... Non obstante, neste contexto, esta función é o noso bot... En resumo, agora e aquí mesmo faremos un bot sinxelo que fará "espello" ( é dicir, devolver as solicitudes dos usuarios. Este modelo sempre se pode usar cando se crean novos bots de telegram para asegurarse de que a comunicación con telegrama'ohm funciona ben. Fai clic Crear ficheiro, imos chamalo índice.js, e en liña Editor de código pega o seguinte código neste ficheiro:

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

Na consola Yandex.Cloud debería verse así:

Creando un bot de Telegram en Yandex.Cloud

Máis abaixo indicamos Punto de entrada - índice.botonde índice este é o nome do ficheiro (índice.js), e bot - nome da función (module.exports.bot). Deixa todos os demais campos tal e como están e fai clic no botón da esquina superior dereita Crear versión. Nuns segundos crearase esta versión da función. Pouco despois da proba webhook, crearemos unha nova versión − Pensamentos intelixentes.

Creando un bot de Telegram en Yandex.Cloud

Almacenamento de obxectos

Agora que creamos función Yandex, vamos, mentres estamos na consola Yandex.Cloud, imos crear o chamado balde (balde, é dicir. balde en ruso, non un ramo en absoluto) para almacenar ficheiros de imaxe que se utilizarán no noso bot Pensamentos intelixentes. No menú de navegación da esquerda, seleccione o elemento Almacenamento de obxectos, prema o botón Crea un balde, dálle un nome, por exemplo, img-cubo, e, o máis importante, Acceso de lectura a obxectos Facémolo público; se non, Telegram non verá as nosas imaxes. Deixamos todos os demais campos sen cambios. Preme o botón Crea un balde.

Creando un bot de Telegram en Yandex.Cloud

Despois disto, a lista de todos os depósitos pode verse así (se este é o teu único depósito):

Creando un bot de Telegram en Yandex.Cloud

Agora suxiro facer clic no nome do balde e crear un cartafol no seu interior para organizar o almacenamento de imaxes para as súas diferentes aplicacións. Por exemplo, para un bot de telegram Pensamentos intelixentes Creei un cartafol chamado tg-bot-smart-thoughts (nada, entenderei este código). Crea un tamén.

Creando un bot de Telegram en Yandex.Cloud

Agora podes facer clic no nome do cartafol, entrar nel e cargar ficheiros:

Creando un bot de Telegram en Yandex.Cloud

E facendo clic no nome do ficheiro - obtén URL para usar no noso bot e, en xeral, en calquera lugar (pero non publique isto URL innecesario, xa que o tráfico de Almacenamento de obxectos cargado).

Creando un bot de Telegram en Yandex.Cloud

Iso é basicamente todo o que hai Almacenamento de obxectos. Agora saberás que facer cando vexas unha solicitude para cargar ficheiros alí.

Webhook

Agora instalaremos webhook - é dicir. cando o bot recibe unha actualización (por exemplo, unha mensaxe dun usuario) do servidor Telegrama ao noso función Yandex enviarase unha solicitude (solicitar) con datos. Aquí tes unha liña que podes simplemente pegar no campo de enderezo do teu navegador e despois actualizar a páxina (só tes que facelo unha vez): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Só substituirémolo {bot_token} ao token que recibimos do bot pai ao crear o noso bot, e {webhook_url} - activado URL o noso Funcións de Yandex. Espera un minuto! Pero RossKomTsenzur prohibe aos provedores da Federación Rusa atender o enderezo https://api.telegram.org. Si é correcto. Pero inventar algo. Despois de todo, podes, por exemplo, preguntarlle á túa avoa sobre isto en Ucraína, Israel ou Canadá: alí non hai "Rosskomcensorship" e só Deus sabe como vive a xente sen ela. Como resultado, a solicitude-resposta ao instalar un webhook debería verse así:

Creando un bot de Telegram en Yandex.Cloud

Estamos probando. Debería "espello".

Creando un bot de Telegram en Yandex.Cloud

É verdade. Os nosos parabéns - agora función Yandex tornouse Telegrama-bot!

Pensamentos intelixentes

Agora imos facer pensamentos intelixentes. O código está aberto e xace GitHub. Está bastante ben comentado e só ten cen liñas. Léao como un libreto de diva de ópera!

Creando un bot de Telegram en Yandex.Cloud

Clona o proxecto e instala dependencias:

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

Fai os cambios que necesites no ficheiro índice.js (opcional; non tes que cambiar nada). Crear enerxía-arquivo, con arquivo índice.js e cartafol módulos_nodo dentro, por exemplo, baixo o nome intelixente.zip.

Creando un bot de Telegram en Yandex.Cloud

Agora vai á consola ao noso Funcións de Yandex, seleccione a pestana Arquivo ZIP, prema o botón Seleccione un ficheiro, e descarga o noso arquivo intelixente.zip. Finalmente, na esquina superior dereita, fai clic no botón Crear versión.

Creando un bot de Telegram en Yandex.Cloud

Nuns segundos, cando se actualice a función, probaremos de novo o noso bot. Agora xa non "espellos", senón que ofrece pensamentos intelixentes.

Creando un bot de Telegram en Yandex.Cloud

Iso é todo por hoxe. Seguen máis artigos. Se estás interesado en ler isto, subscríbete ás notificacións sobre novos artigos. Podes subscribirte aquí, ou en Telegrama-canal Tutorial de TI ZakharOu chilro @mikezaharov.

referencias

Código en GitHub
Funcións de Yandex Cloud
Almacenamento de obxectos Yandex
Bots: unha introdución para desenvolvedores
API de Telegram Bot

Doazóns

Creando un bot de Telegram en Yandex.Cloud

Fonte: www.habr.com

Engadir un comentario