> ## 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 Slack

> Aprende a crear y alojar bots de Slack en Square Cloud. Tutorial completo con configuración, deploy 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 = "un bot de Slack"

## 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="bots de Slack" plan="Hobby" tier="2" cpu="2" lang="es" />

## Crear el proyecto

Para crear un bot de Slack, necesitarás una cuenta y permisos para crear apps en Slack. Crea o accede a tu cuenta en [https://slack.com/](https://slack.com/) antes de seguir los siguientes pasos.

### Aplicación de bot en Slack

1. Ve a [Slack API - Your Apps](https://api.slack.com/apps) y haz clic en "Create New App".
2. Elige "From scratch", dale un nombre a la app y selecciona el workspace donde la instalarás.
3. Anota el *Signing Secret* (en "Basic Information") y crea un *Bot Token* en la sección "OAuth & Permissions", añadiendo los scopes apropiados para tu bot (por ejemplo, `chat:write`, `channels:read`, `commands`, `app_mentions:read`).

<Warning>**Seguridad:** Nunca expongas el Signing Secret ni el Bot Token públicamente. Trátalos como credenciales sensibles.</Warning>

## Desarrollar el proyecto

Usa las secciones a continuación según el lenguaje que elijas. Ambos ejemplos demuestran un bot que responde a menciones o comandos simples.

<Tabs>
  <Tab title="Node.js - @slack/bolt">
    **Configuración del entorno Node.js**

    1. Asegúrate de que Node.js esté instalado.
    2. Inicializa un proyecto e instala las dependencias:

    ```bash Terminal theme={null}
    npm init -y
    npm install @slack/bolt
    ```

    3. Crea un archivo `index.js` con el siguiente contenido:

    ```javascript index.js theme={null}
    const { App } = require('@slack/bolt');

    const app = new App({
      signingSecret: process.env.SLACK_SIGNING_SECRET,
      token: process.env.SLACK_BOT_TOKEN,
    });

    // Responds when mentioned
    app.event('app_mention', async ({ event, say }) => {
      await say(`<@${event.user}> Thanks for mentioning me!`);
    });

    // Example slash command
    app.command('/hello', async ({ ack, respond }) => {
      await ack();
      await respond('Hello from Square Cloud!');
    });

    (async () => {
      await app.start(process.env.PORT || 3000);
      console.log('⚡️ Slack Bolt app is running!');
    })();
    ```

    Nota: en Square Cloud, define las variables de entorno `SLACK_SIGNING_SECRET` y `SLACK_BOT_TOKEN` en el panel de la aplicación.
  </Tab>

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

    1. Asegúrate de que Python y pip estén instalados.
    2. Instala la librería Bolt para Python:

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

    3. Crea un archivo `app.py` con el siguiente contenido:

    ```python app.py theme={null}
    from slack_bolt import App
    import os

    app = App(
        signing_secret=os.environ.get('SLACK_SIGNING_SECRET'),
        token=os.environ.get('SLACK_BOT_TOKEN')
    )

    @app.event('app_mention')
    def handle_mention(event, say):
        user = event.get('user')
        say(f'<@{user}> Thanks for mention!')

    @app.command('/hello')
    def hello_command(ack, respond):
        ack()
        respond('Hello from Square Cloud!')

    if __name__ == '__main__':
        app.start(port=int(os.environ.get('PORT', 3000)))
    ```

    4. Para proyectos Python, incluye un `requirements.txt` con:

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

## Deploy

Después de 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>

## Probar el bot

1. En el panel de la Slack App, en "OAuth & Permissions", instala la app en el workspace.
2. Si el bot expone endpoints (para eventos o comandos), configura la Request URL en "Event Subscriptions" y "Slash Commands" para que apunte a la URL pública de tu aplicación (Square Cloud proporciona el dominio después del deploy).
3. Prueba las menciones en un canal o el comando `/hello` para validar las respuestas.

Ejemplo de enlace de instalación (reemplaza el client\_id):

```txt theme={null}
https://slack.com/oauth/v2/authorize?client_id=000000000000.000000000000&scope=commands,chat:write,app_mentions:read
```

## Recursos adicionales

Para más información, consulta la documentación oficial de Slack:

* Bolt para JavaScript: [https://docs.slack.dev/tools/bolt-js/](https://docs.slack.dev/tools/bolt-js/)
* Bolt para Python: [https://docs.slack.dev/tools/bolt-python/](https://docs.slack.dev/tools/bolt-python/)

## 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.
