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

# Telegram-Bots hosten

> Lerne, wie du Telegram-Bots auf Square Cloud erstellst und hostest. Vollständiges Tutorial mit Konfiguration, Deployment und praktischen Beispielen in Node.js und 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"

## 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="Telegram bots" plan="Hobby" tier="2" cpu="2" lang="en" />

## Projekt erstellen

Ein Telegram-Konto ist unerlässlich, um deinen Bot zu testen und mit ihm zu interagieren. Falls du noch keins hast, besuche die [offizielle Telegram-Website](https://telegram.org/), um dein Konto kostenlos zu erstellen.

### Bot-Anwendung auf Telegram

<Steps>
  <Step title="Erste Schritte" icon="rocket">
    Rufe [Telegram Web](https://web.telegram.org/a/) auf und suche nach dem offiziellen **BotFather**-Bot, der für das Erstellen und Verwalten von Bots auf der Plattform zuständig ist.

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

  <Step title="Authentifizierungs-Token erhalten" icon="key">
    Starte eine Konversation mit BotFather und gib `/start` ein. Wähle dann die Option `/newbot`, um einen neuen Bot zu erstellen. Das System fragt nach einem Namen für deinen Bot und generiert nach der Bestätigung automatisch den notwendigen Authentifizierungs-Token.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/telegram/generating-token.webp" alt="Generieren des Telegram-Bot-Tokens mit BotFather" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>

<Warning>**Kritische Sicherheit**: Halte deinen Bot-Token absolut geheim. Dieser Token gewährt vollständige Kontrolle über den Bot und sollte als vertrauliche Information behandelt werden.</Warning>

### Projekt entwickeln

Die Wahl der Bibliothek oder des Frameworks hängt von der Programmiersprache ab, die du verwenden möchtest. Nachfolgend findest du einige der beliebtesten Optionen:

<Tabs>
  <Tab title="Node.js - grammY">
    **Umgebung einrichten**

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

    2. Initialisiere ein neues Node.js-Projekt:

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

    3. Installiere die grammY-Bibliothek:

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

    **Grundlegende Implementierung**

    4. Erstelle die Hauptdatei (`index.js`) mit der folgenden Struktur:

    ```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">
    **Umgebung einrichten**

    1. Stelle sicher, dass Python und pip installiert sind. Andernfalls lade sie von der [offiziellen Python-Website](https://www.python.org/) herunter.

    2. Installiere die pyTelegramBotAPI-Bibliothek:

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

    **Grundlegende Implementierung**

    3. Erstelle die Hauptdatei (`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. Erstelle die `requirements.txt`-Datei, um die Abhängigkeiten zu verwalten:

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

## Deploying

Nachdem du deine Projektdateien vorbereitet hast, kannst du sie nun zu 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>

## Den Bot testen

Nach erfolgreichem Deployment suche deinen Bot auf Telegram und sende eine Testnachricht. Der Bot sollte antworten, indem er deine Nachricht wiederholt, was die korrekte Funktionsweise der Implementierung bestätigt.

<Frame>
  <img src="https://cdn.squarecloud.app/docs/articles/telegram/testing-bot.webp" alt="Testen des Telegram-Bots nach dem Deployment" style={{ borderRadius: "0.2rem" }} />
</Frame>

## Weitere Ressourcen

Um dein Wissen über die Entwicklung von Telegram-Bots zu vertiefen, konsultiere die [offizielle pyTelegramBotAPI-Dokumentation](https://pypi.org/project/pyTelegramBotAPI/). Die Dokumentation bietet detaillierte Anleitungen, fortgeschrittene Tutorials und eine vollständige API-Referenz.

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