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

# So hostest du WhatsApp-Bots

> Lerne, wie du WhatsApp-Bots auf Square Cloud erstellst und hostest. Vollständiges Tutorial mit Konfiguration, Deployment und praktischem Beispiel in Node.js.

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 Whatsapp bot"

## Einführung

Um {appType_0} auf Square Cloud zu entwickeln und zu hosten, ist es wichtig, einer strukturierten Abfolge von Konfigurationen und Voraussetzungen zu folgen. Dieser technische Leitfaden deckt den gesamten Prozess ab, von der anfänglichen Einrichtung bis zum Produktions-Deployment.

### Voraussetzungen

* **Square Cloud Konto**: Registriere dich über die [Registrierungsseite](https://squarecloud.app/de/signup) mit deiner E-Mail-Adresse.
* **Aktiver kostenpflichtiger Plan**: Stellt dedizierte Ressourcen und optimierte Leistung für deine Anwendung sicher. Sieh dir unsere [verfügbaren Pläne](https://squarecloud.app/de/pricing) an und wähle den passendsten für deine Bedürfnisse.

<RecommendedPlan appType="Whatsapp bots" plan="Standard" tier="4" cpu="4" lang="de" />

## Projekt erstellen

Eine installierte und konfigurierte WhatsApp-App ist für die Authentifizierung und Verknüpfung des Bots erforderlich. Wenn du die App nicht hast, besuche die [offizielle WhatsApp-Website](https://www.whatsapp.com/coronavirus/get-started?lang=en) zum Herunterladen und Einrichten.

<AccordionGroup>
  <Accordion title="Remote-Pfad-Konfiguration für WhatsApp Web" icon="file" iconType="solid">
    Wenn deine Implementierung auf den Remote-Pfad für die WhatsApp-Web-Version zugreifen muss, befolge dieses technische Verfahren:

    1. Rufe das [wa-version](https://github.com/wppconnect-team/wa-version/tree/main/html)-Repository auf
    2. Wähle die gewünschte Version (es wird immer empfohlen, die neueste zu verwenden)
    3. Klicke auf "Raw", um die Datei anzuzeigen
    4. Kopiere die generierte URL zur späteren Verwendung

    **Beispiel für eine konfigurierte URL:**

    ```
    https://raw.githubusercontent.com/wppconnect-team/wa-version/main/html/2.2412.54.html
    ```
  </Accordion>
</AccordionGroup>

### Projekt entwickeln

1. **Node.js-Prüfung**: Stelle sicher, dass Node.js auf deinem System installiert ist. Andernfalls lade es von der [offiziellen Node.js-Website](https://nodejs.org/) herunter.

2. **Projektinitialisierung**: Richte ein neues Node.js-Projekt ein, indem du den Initialisierungsbefehl ausführst:

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

3. **Abhängigkeiten installieren**: Installiere die wesentlichen Bibliotheken für die Bot-Funktionalität:

```bash Terminal theme={null}
npm install whatsapp-web.js qrcode
```

4. **Hauptdatei erstellen**: Entwickle die Datei `index.js` mit der Grundstruktur des Bots:

```javascript index.js theme={null}
// Import necessary modules
const { Client } = require("whatsapp-web.js");
const qrcode = require("qrcode");

// Create a new WhatsApp client instance
const client = new Client({
  puppeteer: {
    // Run Chrome in headless mode (without graphical interface)
    headless: true,
    args: [
      // Disable Chrome sandboxing features
      // Required for execution in containerized environments
      "--no-sandbox",
      // Additional sandboxing flag to disable setuid sandbox
      "--disable-setuid-sandbox",
    ],
  },
  // Web version cache configuration
  webVersionCache: {
    // Type "remote" indicates WhatsApp Web version will be fetched from remote URL
    type: "remote",
    // Remote path for WhatsApp Web version
    remotePath: "INSERT_YOUR_URL_HERE",
  },
});

// Event listener for QR Code generation
client.on("qr", async (qr) => {
  // Use qrcode library to generate and save QR Code
  try {
    await qrcode.toFile("./qrcode.png", qr);
    console.log("QR Code generated and saved as qrcode.png");
  } catch (err) {
    console.error("Error generating QR Code:", err);
  }
});

// Event listener for client ready
client.on("ready", () => {
  // Confirmation log when WhatsApp Web session is established
  console.log("WhatsApp client successfully initialized!");
});

// Event listener for created messages
client.on("message_create", (msg) => {
  // Log message content to console
  console.log("Message received:", msg.body);
  
  // Test command implementation
  if (msg.body === "!ping") {
    // Automatic response for ping command
    msg.reply("pong - Bot working correctly!");
  }
});

// Initialize WhatsApp client
client.initialize();
```

## Deployment

Nachdem du deine Projektdateien vorbereitet hast, kannst du sie nun auf Square Cloud hochladen und dein Projekt hosten.
Erstelle dazu eine ZIP-Datei, die alle deine Projektdateien enthält.

### Über das Dashboard

<Steps>
  <Step title="Upload-Seite aufrufen">
    Rufe die [Upload-Seite](https://squarecloud.app/de/dashboard/new) auf und lade die ZIP-Datei deines Projekts hoch.
  </Step>

  <Step title="Umgebung konfigurieren">
    Nachdem du deine ZIP-Datei hochgeladen hast, musst du den Namen, die Hauptdatei oder Runtime-Umgebung und weitere Einstellungen für dein Projekt konfigurieren.\
    Wenn du ein Web-Projekt hochlädst, achte darauf, "Web Publication" auszuwählen und deinem Projekt eine Subdomain zuzuweisen.
  </Step>

  <Step title="Projekt bereitstellen">
    Klicke abschließend auf die Schaltfläche "Deploy", um dein Projekt auf Square Cloud zu hosten.\
    Nach dem Deploy kannst du den Status und die Logs deines Projekts über das Dashboard überwachen.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/dashboard/uploading.gif" alt="Anwendung wird auf Square Cloud hochgeladen" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>

### Über die CLI

Um diese Methode zu nutzen, musst du eine Konfigurationsdatei mit dem Namen `squarecloud.app` im Stammverzeichnis deines Projekts erstellen. Diese Datei enthält die notwendige Konfiguration für dein Projekt.

<Card title="Mehr erfahren: So erstellst du die Konfigurationsdatei für Square Cloud." icon="link" href="/de/getting-started/config-file">
  Die Datei squarecloud.app ist eine Konfigurationsdatei, mit der deine Anwendung konfiguriert wird; sie dient dazu, deine Umgebung zu definieren.
</Card>

<Steps>
  <Step title="CLI installieren">
    Zuerst musst du die CLI in deiner Umgebung installiert haben. Falls du sie noch nicht hast, führe den folgenden Befehl in deinem Terminal aus:

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

    Falls du sie bereits hast, empfehlen wir, sie zu aktualisieren. Führe dazu den folgenden Befehl in deinem Terminal aus:

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

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

  <Step title="Authentifizieren">
    Um dich zu authentifizieren und weitere CLI-Befehle zu nutzen, findest du deinen Autorisierungsschlüssel [hier](https://squarecloud.app/de/account/security), indem du auf "Request API Key" klickst. Nachdem du deinen Autorisierungsschlüssel erhalten hast, führe den folgenden Befehl aus:

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

  <Step title="Projekt hochladen">
    Um deine Anwendung schließlich über die CLI auf Square Cloud bereitzustellen, musst du den folgenden Befehl ausführen:

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

    Oder falls du die ZIP-Datei manuell erstellt hast, kannst du Folgendes verwenden:

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

## Weitere Ressourcen

Um dein Wissen über die Entwicklung von WhatsApp-Bots mit whatsapp-web.js zu vertiefen, konsultiere die [offizielle Dokumentation der whatsapp-web.js-Bibliothek](https://wwebjs.dev/). Die Dokumentation bietet detaillierte technische Anleitungen, fortgeschrittene Tutorials und eine vollständige API-Referenz, um das Implementierungspotenzial voll auszuschöpfen.

## Kontaktiere uns

Falls du weiterhin **technische Schwierigkeiten** hast, steht dir unser **spezialisiertes Support-Team** zur Verfügung. [**Kontaktiere uns**](https://squarecloud.app/de/support) und wir helfen dir gerne, jedes Problem zu lösen.
