> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Cómo alojar bots de Telegram

> Aprende a crear y alojar bots de Telegram en Square Cloud. Tutorial completo con configuración, despliegue y ejemplos prácticos en Node.js y Python.

export const RecommendedPlan = ({lang, plan, tier, cpu, appType}) => {
  const url = `https://squarecloud.app/${lang}/pay?plan=${plan.toLowerCase()}&tier=${tier}`;
  if (lang == 'en') {
    return <Note>
        <b>Wondering how much RAM and CPU your plan needs to host {appType}?</b><br />
        Don't worry, we're here to help.
        Our <a href={url}>{plan}</a> plan offers <b>{tier}GB</b> of RAM and <b>{cpu}vCPU</b>, which should be sufficient for most {appType}. 
        However, if you are working on a larger project and seeking extra stability, we recommend considering our <b>Pro</b> plan. With additional resources, you can maintain stability even during demand spikes. 
        To purchase, simply click <a href="https://squarecloud.app/en/pay?plan=pro">here</a>.
      </Note>;
  } else {
    return <Note>
          <b>Está se perguntando quanta RAM e CPU seu plano precisa para hospedar {appType}?</b><br />
          Não se preocupe, estamos aqui para ajudar.
          Nosso plano <a href={url}>{plan}</a> oferece <b>{tier}GB</b> de RAM e <b>{cpu}vCPU</b>, o que deve ser suficiente para a maioria dos {appType}.
          No entanto, se você estiver trabalhando em um projeto maior e precisar de mais estabilidade, recomendamos considerar nosso plano <b>Pro</b>.
          Com recursos adicionais, você pode manter a estabilidade mesmo durante picos de demanda.
          Para comprar, basta clicar <a href={`https://squarecloud.app/${lang}/pay?plan=pro`}>aqui</a>.
        </Note>;
  }
};

export const appType_0 = "a Telegram bots"

## Introducción

Para desarrollar y alojar {appType_0} en Square Cloud, es esencial seguir una secuencia estructurada de configuraciones y requisitos previos. Esta guía técnica cubrirá todo el proceso, desde la configuración inicial hasta el despliegue en producción.

### Requisitos previos

* **Cuenta de Square Cloud**: Regístrate a través de la [página de registro](https://squarecloud.app/es/signup) usando tu correo electrónico.
* **Plan de pago activo**: Garantiza recursos dedicados y un rendimiento optimizado para tu aplicación. Consulta nuestros [planes disponibles](https://squarecloud.app/es/pricing) y elige el más adecuado para tus necesidades.

<RecommendedPlan appType="Telegram bots" plan="Hobby" tier="2" cpu="2" lang="en" />

## Creando el proyecto

Una cuenta de Telegram es esencial para probar e interactuar con tu bot. Si no tienes una, visita el [sitio web oficial de Telegram](https://telegram.org/) para crear tu cuenta gratis.

### Aplicación del bot en Telegram

<Steps>
  <Step title="Primeros pasos" icon="rocket">
    Accede a [Telegram Web](https://web.telegram.org/a/) y busca el bot oficial **BotFather**, responsable de crear y administrar bots en la plataforma.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/telegram/getting-started.webp" alt="Encontrando BotFather en Telegram" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>

  <Step title="Obteniendo el token de autenticación" icon="key">
    Inicia una conversación con BotFather y escribe `/start`. Luego, selecciona la opción `/newbot` para crear un nuevo bot. El sistema pedirá un nombre para tu bot y, tras la confirmación, generará automáticamente el token de autenticación necesario.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/telegram/generating-token.webp" alt="Generando el token del bot de Telegram con BotFather" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>

<Warning>**Seguridad crítica**: Mantén el token de tu bot absolutamente secreto. Este token otorga control total sobre el bot y debe tratarse como información confidencial.</Warning>

### Desarrollando el proyecto

La elección de la biblioteca o framework depende del lenguaje de programación que pretendas usar. A continuación se presentan algunas de las opciones más populares:

<Tabs>
  <Tab title="Node.js - grammY">
    **Configuración del entorno**

    1. Verifica que Node.js esté instalado en tu sistema. De lo contrario, descárgalo desde el [sitio web oficial de Node.js](https://nodejs.org/).

    2. Inicializa un nuevo proyecto de Node.js:

    ```bash Terminal theme={null}
    npm init -y
    ```

    3. Instala la biblioteca grammY:

    ```bash Terminal theme={null}
    npm install grammy
    ```

    **Implementación básica**

    4. Crea el archivo principal (`index.js`) con la siguiente estructura:

    ```javascript index.js theme={null}
    const { Bot } = require("grammy");

    // Authentication token configuration
    const token = "YOUR_TOKEN_HERE";

    // Bot initialization
    const bot = new Bot(token);

    (async () => {
      // Get bot information
      const botInfo = await bot.api.getMe();
      const botName = botInfo.username;

      // Define handler for text messages
      bot.on("message:text", async (ctx) => {
        const userMsg = ctx.message.text;
        const responseMsg = `${botName} responds: ${userMsg}`;
        await ctx.reply(responseMsg);
      });

      // Start the bot
      bot.start();
      console.log(`Bot ${botName} started successfully!`);
    })();
    ```
  </Tab>

  <Tab title="Python - telebot">
    **Configuración del entorno**

    1. Verifica que Python y pip estén instalados. De lo contrario, descárgalos desde el [sitio web oficial de Python](https://www.python.org/).

    2. Instala la biblioteca pyTelegramBotAPI:

    ```bash Terminal theme={null}
    pip install pyTelegramBotAPI
    ```

    **Implementación básica**

    3. Crea el archivo principal (`main.py`):

    ```python main.py theme={null}
    import telebot

    # Authentication token configuration
    TOKEN = "YOUR_TOKEN_HERE"

    # Bot initialization
    bot = telebot.TeleBot(TOKEN)

    # Define handler for non-command messages
    @bot.message_handler(func=lambda message: not message.text.startswith('/'))
    def echo_handler(message):
        # Get bot information
        bot_info = bot.get_me()
        bot_name = bot_info.username
        # Format response message
        response_msg = f"{bot_name} responds: {message.text}"
        # Reply to the user
        bot.reply_to(message, response_msg)

    # Main execution
    if __name__ == '__main__':
        bot_info = bot.get_me()
        print(f"Bot {bot_info.username} started successfully!")
        # Start polling
        bot.infinity_polling()
    ```

    4. Crea el archivo `requirements.txt` para gestionar las dependencias:

    ```txt requirements.txt theme={null}
    pyTelegramBotAPI
    ```
  </Tab>
</Tabs>

## Desplegando

Tras preparar los archivos de tu proyecto, ya puedes subirlos a Square Cloud y alojar tu proyecto.
Para ello, crea un archivo ZIP que contenga todos los archivos de tu proyecto.

### A través del panel

<Steps>
  <Step title="Accede a la página de subida">
    Accede a la [página de subida](https://squarecloud.app/es/dashboard/new) y sube el archivo zip de tu proyecto.
  </Step>

  <Step title="Configura tu entorno">
    Después de subir tu zip, deberás configurar el nombre, el archivo principal o el entorno de ejecución y otros ajustes de tu proyecto.\
    Si estás subiendo un proyecto web, asegúrate de seleccionar "Publicación Web" y de definir un subdominio para tu proyecto.
  </Step>

  <Step title="Despliega tu proyecto">
    Por último, haz clic en el botón "Deploy" para alojar tu proyecto en Square Cloud.\
    Tras el despliegue, puedes monitorear el estado y los logs de tu proyecto desde el panel.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/dashboard/uploading.gif" alt="Subiendo aplicación a Square Cloud" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>

### A través de la CLI

Para usar este método, necesitas crear un archivo de configuración llamado `squarecloud.app` en el directorio raíz de tu proyecto. Este archivo contendrá la configuración necesaria para tu proyecto.

<Card title="Aprende más sobre: cómo crear el archivo de configuración para Square Cloud." icon="link" href="/es/getting-started/config-file">
  El archivo squarecloud.app es un archivo de configuración que se usará para configurar tu aplicación; se utilizará para definir tu entorno.
</Card>

<Steps>
  <Step title="Instala la CLI">
    Primero, necesitas tener la CLI instalada en tu entorno. Si aún no la tienes, ejecuta el siguiente comando en tu terminal:

    ```
    npm install -g @squarecloud/cli
    ```

    Si ya la tienes, te recomendamos actualizarla. Para ello, ejecuta el siguiente comando en tu terminal:

    <Tabs>
      <Tab title="Windows">
        ```bash theme={null}
        squarecloud update
        ```
      </Tab>

      <Tab title="Linux, macOS y WSL">
        ```bash theme={null}
        curl -fsSL https://cli.squarecloud.app/install | bash
        ```
      </Tab>
    </Tabs>
  </Step>

  <Step title="Autentícate">
    Ahora, para autenticarte y usar otros comandos de la CLI, encontrarás tu clave de autorización [aquí](https://squarecloud.app/es/account/security) haciendo clic en "Request API Key". Después de obtener tu clave de autorización, ejecuta el siguiente comando:

    ```bash theme={null}
    squarecloud auth login
    ```
  </Step>

  <Step title="Sube tu proyecto">
    Por último, para desplegar tu aplicación en Square Cloud usando la CLI, necesitas ejecutar el siguiente comando:

    ```bash theme={null}
    squarecloud upload 
    ```

    O si creaste el zip manualmente, puedes usar:

    ```bash theme={null}
    squarecloud upload --file <path/to/zip> 
    ```
  </Step>
</Steps>

## Probando el bot

Tras un despliegue exitoso, localiza tu bot en Telegram y envía un mensaje de prueba. El bot debería responder repitiendo tu mensaje, confirmando el correcto funcionamiento de la implementación.

<Frame>
  <img src="https://cdn.squarecloud.app/docs/articles/telegram/testing-bot.webp" alt="Probando el bot de Telegram tras el despliegue" style={{ borderRadius: "0.2rem" }} />
</Frame>

## Recursos adicionales

Para profundizar tus conocimientos sobre el desarrollo de bots de Telegram, consulta la [documentación oficial de pyTelegramBotAPI](https://pypi.org/project/pyTelegramBotAPI/). La documentación ofrece guías detalladas, tutoriales avanzados y una referencia completa de la API.

## Contáctanos

Si continúas enfrentando **dificultades técnicas**, nuestro **equipo de soporte especializado** está disponible para ayudarte. [**Contáctanos**](https://squarecloud.app/es/support) y estaremos encantados de ayudarte a resolver cualquier problema.
