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

# Comment héberger des bots Slack

> Apprenez à créer et héberger des bots Slack sur Square Cloud. Tutoriel complet avec configuration, déploiement et exemples pratiques en Node.js et 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 Slack bot"

## Introduction

Pour développer et héberger {appType_0} sur Square Cloud, il est essentiel de suivre une séquence structurée de configurations et de prérequis. Ce guide technique couvrira l'ensemble du processus, de la configuration initiale au déploiement en production.

### Prérequis

* **Compte Square Cloud** : Inscrivez-vous via la [page d'inscription](https://squarecloud.app/fr/signup) en utilisant votre adresse e-mail.
* **Plan payant actif** : Garantit des ressources dédiées et des performances optimisées pour votre application. Consultez nos [plans disponibles](https://squarecloud.app/fr/pricing) et choisissez celui qui convient le mieux à vos besoins.

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

## Création du projet

Pour créer un bot Slack, vous aurez besoin d'un compte et des permissions nécessaires pour créer des apps sur Slack. Créez ou accédez à votre compte sur [https://slack.com/](https://slack.com/) avant de suivre les étapes suivantes.

### Application bot sur Slack

1. Rendez-vous sur [Slack API - Your Apps](https://api.slack.com/apps) et cliquez sur « Create New App ».
2. Choisissez « From scratch », donnez un nom à l'app et sélectionnez le workspace où vous l'installerez.
3. Notez le *Signing Secret* (dans « Basic Information ») et créez un *Bot Token* dans la section « OAuth & Permissions », en ajoutant les scopes appropriés pour votre bot (par exemple `chat:write`, `channels:read`, `commands`, `app_mentions:read`).

<Warning>**Sécurité :** N'exposez jamais publiquement le Signing Secret ni le Bot Token. Traitez-les comme des identifiants sensibles.</Warning>

## Développement du projet

Utilisez les sections ci-dessous selon le langage que vous choisissez. Les deux exemples illustrent un bot qui répond aux mentions ou à des commandes simples.

<Tabs>
  <Tab title="Node.js - @slack/bolt">
    **Configuration de l'environnement Node.js**

    1. Assurez-vous que Node.js est installé.
    2. Initialisez un projet et installez les dépendances :

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

    3. Créez un fichier `index.js` avec le contenu suivant :

    ```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!');
    })();
    ```

    Note : sur Square Cloud, définissez les variables d'environnement `SLACK_SIGNING_SECRET` et `SLACK_BOT_TOKEN` dans le panneau de l'application.
  </Tab>

  <Tab title="Python - slack_bolt">
    **Configuration de l'environnement Python**

    1. Assurez-vous que Python et pip sont installés.
    2. Installez la bibliothèque Bolt for Python :

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

    3. Créez un fichier `app.py` avec le contenu suivant :

    ```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. Pour les projets Python, incluez un fichier `requirements.txt` avec :

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

## Déploiement

Après avoir préparé les fichiers de votre projet, vous pouvez maintenant les téléverser sur Square Cloud et héberger votre projet.
Pour ce faire, créez un fichier ZIP contenant tous les fichiers de votre projet.

### Via le tableau de bord

<Steps>
  <Step title="Accéder à la page d'upload">
    Accédez à la [page d'upload](https://squarecloud.app/fr/dashboard/new) et téléversez le fichier zip de votre projet.
  </Step>

  <Step title="Configurer votre environnement">
    Après avoir téléversé votre zip, vous devrez configurer le nom, le fichier principal ou l'environnement d'exécution ainsi que d'autres paramètres de votre projet.\
    Si vous téléversez un projet web, veillez à sélectionner « Publication Web » et à définir un sous-domaine pour votre projet.
  </Step>

  <Step title="Déployer votre projet">
    Enfin, cliquez sur le bouton « Deploy » pour héberger votre projet sur Square Cloud.\
    Une fois le déploiement effectué, vous pouvez suivre l'état et les logs de votre projet depuis le tableau de bord.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/dashboard/uploading.gif" alt="Téléversement d'une application vers Square Cloud" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>

### Via la CLI

Pour utiliser cette méthode, vous devez créer un fichier de configuration nommé `squarecloud.app` à la racine de votre projet. Ce fichier contiendra la configuration nécessaire à votre projet.

<Card title="En savoir plus : comment créer le fichier de configuration pour Square Cloud." icon="link" href="/fr/getting-started/config-file">
  Le fichier squarecloud.app est un fichier de configuration qui servira à configurer votre application ; il sera utilisé pour définir votre environnement.
</Card>

<Steps>
  <Step title="Installer la CLI">
    Tout d'abord, vous devez avoir la CLI installée dans votre environnement. Si ce n'est pas encore le cas, exécutez la commande suivante dans votre terminal :

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

    Si vous l'avez déjà, nous vous recommandons de la mettre à jour. Pour cela, exécutez la commande suivante dans votre terminal :

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

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

  <Step title="S'authentifier">
    Maintenant, pour vous authentifier et utiliser les autres commandes de la CLI, vous trouverez votre clé d'autorisation [ici](https://squarecloud.app/fr/account/security) en cliquant sur « Request API Key ». Après avoir obtenu votre clé d'autorisation, exécutez la commande suivante :

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

  <Step title="Téléverser votre projet">
    Enfin, pour déployer votre application sur Square Cloud à l'aide de la CLI, vous devez exécuter la commande suivante :

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

    Ou si vous avez créé le zip manuellement, vous pouvez utiliser :

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

## Tester le bot

1. Dans le panneau de l'app Slack, sous « OAuth & Permissions », installez l'app sur le workspace.
2. Si le bot expose des endpoints (pour les événements ou les commandes), configurez la Request URL dans « Event Subscriptions » et « Slash Commands » pour pointer vers l'URL publique de votre application (Square Cloud fournit le domaine après le déploiement).
3. Testez les mentions dans un canal ou la commande `/hello` pour valider les réponses.

Exemple de lien d'installation (remplacez le client\_id) :

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

## Ressources supplémentaires

Pour aller plus loin, consultez la documentation officielle de Slack :

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

## Contactez-nous

Si vous rencontrez toujours des **difficultés techniques**, notre **équipe de support spécialisée** est disponible pour vous aider. [**Contactez-nous**](https://squarecloud.app/fr/support) et nous serons ravis de vous aider à résoudre tout problème.
