Zum Inhalt springen

Telegram Bots mit grammY optimieren

Du hast wahrscheinlich schon mal versucht, einen Telegram Bot direkt über die API zu steuern. Man landet schnell bei einem Wirrwarr aus manuellen Fetch-Requests und kompliziertem Media-Handling. Das Verwalten von Webhooks und das Einhalten von Rate Limits macht die Sache oft unnötig kompliziert.

Es ist nervig, wenn der Code für einfache Nachrichten-Antworten oder den Upload von Dateien durch Boilerplate-Code unübersichtlich wird. Hier hilft die Integration von grammY, um die Kommunikation mit der Telegram Bot API sauber und effizient zu gestalten.

  • channels.telegram.botToken von BotFather
  • Node.js Umgebung für den Gateway-Betrieb
  • Optional: channels.telegram.webhookUrl und webhookSecret
  • Optional: Proxy-Daten für undici.ProxyAgent

Die Integration nutzt grammY als einzigen Client für alle Telegram-Aktionen. So startest du in 5 Minuten:

  1. Konfiguration setzen: Hinterlege deinen botToken in den Einstellungen unter channels.telegram.botToken.
  2. Gateway starten: Der monitorTelegramProvider erstellt automatisch eine grammY Bot-Instanz. Er kümmert sich um das Gating von Erwähnungen und Allowlisten.
  3. Verbindungsmodus wählen: Wenn du webhookUrl und webhookSecret definierst, schaltet das Gateway automatisch in den Webhook-Modus. Ohne diese Werte wird Long-Polling verwendet.
  4. Streaming aktivieren: Setze channels.telegram.streamMode auf aktiv, um sendMessageDraft in privaten Chats zu nutzen (erfordert Bot API 9.3+).

grammY ersetzt die alte Fetch-basierte Implementierung und dient nun als zentraler Client für Sendevorgänge und das Gateway.

  • Media Handling: Statt manueller Fetch-Logik und FormData nutzt das System getFile und download von grammY. Das System unterstützt sendMessage, sendPhoto, sendVideo, sendAudio und sendDocument.
  • Session Management: Private Chats werden in der Haupt-Session des Agents (agent:<agentId>:<mainKey>) zusammengefasst. Gruppen-Chats nutzen eine eigene Kennung (agent:<agentId>:telegram:group:<chatId>).
  • Proxy Support: Falls dein Setup einen Proxy erfordert, kannst du channels.telegram.proxy nutzen. Dies wird über undici.ProxyAgent in grammYs client.baseFetch eingebunden.
  • Throttling: Der grammY Throttler ist standardmäßig aktiviert, um die API-Limits von Telegram automatisch zu beachten.
  • Rate Limits (429 Errors): Falls du in API-Limits läufst, stelle sicher, dass der standardmäßig integrierte grammY Throttler nicht durch eigene Middleware blockiert wird.
  • Webhook-Probleme: Der Webhook-Listener ist aktuell fest auf Port 8787 voreingestellt. Prüfe, ob dieser Port in deiner Umgebung freigegeben ist.

Hast du Fragen zur Konfiguration? Nutze den AI Setup Assistant.

OpenClaw

OpenClaw Expert

Noch festgefahren?

Wenn diese Seite nicht hilft, frage OpenClaw Expert nach Schritt-fuer-Schritt-Loesungen.