Erstellen eines Telegram-Bots in Swift: von der Idee bis zum Deployment

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Telegram-Bot in Swift: Schritt-für-Schritt-Anleitung für Mutige

\n\n

Hallo Entwickler! Wenn du denkst, dass Telegram-Bots nur in Python oder JavaScript geschrieben werden, habe ich eine Neuigkeit für dich. Swift, das du für seine Eleganz und Leistung liebst, eignet sich hervorragend für die Serverentwicklung. Ja, genau das Swift, mit dem du iOS-Apps schreibst, kann auch im Backend arbeiten. In dieser Anleitung erstellen wir einen Telegram-Bot in Swift von Grund auf mit Vapor, einem leistungsstarken Web-Framework. Der Bot wird auf Befehle reagieren, Nachrichten verarbeiten und sogar Bilder senden. Los geht's!

\n\n

Warum Swift für einen Telegram-Bot? Stereotype aufbrechen

\n\n

Bevor wir in den Code eintauchen, lass uns klären, warum man überhaupt einen Bot in Swift schreiben sollte. Erstens: Wenn du ein iOS-Entwickler bist, kennst du die Sprache bereits. Du musst nicht Python oder JS von Grund auf lernen. Zweitens: Swift bietet Typsicherheit und Geschwindigkeit. Der Bot wird schnell und ohne Überraschungen laufen. Drittens: Das Vapor-Ökosystem ermöglicht eine einfache Integration mit Datenbanken, das Senden von Benachrichtigungen und sogar das Parsen von JSON. Und ja, die Telegram Bot API funktioniert in Swift einwandfrei. Hauptsache, die Umgebung ist richtig eingerichtet.

\n\n

Schritt 1: Vorbereitung der Umgebung

\n\n

Wir benötigen Xcode (mindestens Version 14), Homebrew und Vapor. Wenn du bereits Xcode hast – großartig. Wenn nicht, lade es aus dem Mac App Store herunter. Jetzt installieren wir Vapor:

\n\n
brew install vapor
\n\n

Überprüfe nach der Installation die Version:

\n\n
vapor --version
\n\n

Siehst du die Versionsnummer? Perfekt. Jetzt erstellen wir ein neues Projekt:

\n\n
vapor new TelegramBotSwift --template web\ncd TelegramBotSwift
\n\n

Das Flag --template web erstellt ein Grundgerüst für eine Serveranwendung. Wenn du Minimalismus bevorzugst, verwende --template api. Wir gehen den Weg der Webanwendung, um mehr Flexibilität zu haben.

\n\n

Schritt 2: Telegram Bot API einbinden

\n\n

Für die Arbeit mit Telegram benötigen wir eine Bibliothek. Es gibt mehrere Optionen: TelegramBotSDK von Vapor, SwiftTelegramBot oder rohe HTTP-Anfragen. Ich empfehle TelegramBotSDK – es ist stabil und gut dokumentiert. Fügen wir es in Package.swift hinzu:

\n\n
// swift-tools-version:5.9\nimport PackageDescription\n\nlet package = Package(\n    name: "TelegramBotSwift",\n    platforms: [.macOS(.v12)],\n    dependencies: [\n        .package(url: "https://github.com/vapor/vapor.git", from: "4.0.0"),\n        .package(url: "https://github.com/vapor/telegram-bot-sdk.git", from: "2.0.0")\n    ],\n    targets: [\n        .executableTarget(\n            name: "App",\n            dependencies: [\n                .product(name: "Vapor", package: "vapor"),\n                .product(name: "TelegramBotSDK", package: "telegram-bot-sdk")\n            ]\n        )\n    ]\n)
\n\n

Jetzt holen wir uns einen Token für den Bot. Öffne Telegram, suche nach BotFather, schreibe /newbot und folge den Anweisungen. Speichere den Token – du wirst ihn gleich brauchen.

\n\n

Schritt 3: Den ersten Bot in Swift schreiben

\n\n

Öffne die Datei Sources/App/configure.swift. Dies ist der Einstiegspunkt. Schreiben wir eine grundlegende Struktur:

\n\n
import Vapor\nimport TelegramBotSDK\n\npublic func configure(_ app: Application) throws {\n    // Token aus Umgebungsvariablen abrufen\n    guard let token = Environment.get("TELEGRAM_BOT_TOKEN") else {\n        fatalError("TELEGRAM_BOT_TOKEN nicht gefunden")\n    }\n    \n    // Bot initialisieren\n    let bot = TelegramBot(token: token, app: app)\n    \n    // Handler für den Befehl /start\n    bot.onCommand("start") { context in\n        try await context.sendMessage("Hallo! Ich bin ein Bot in Swift. Wie kann ich helfen?")\n    }\n    \n    // Handler für den Befehl /help\n    bot.onCommand("help") { context in\n        try await context.sendMessage("Verfügbare Befehle:\\n/start - starten\\n/help - Hilfe\\n/echo [Text] - Nachricht wiederholen")\n    }\n    \n    // Handler für den Befehl /echo\n                

Blogs

Buchempfehlungen