Einleitung: Warum ist PHP eine ausgezeichnete Wahl für einen Chat-Bot?
\nHaben Sie sich jemals gefragt, wie diese intelligenten Helfer funktionieren, die Fragen in Telegram, VK oder auf einer Website beantworten? Viele denken, dass man für die Erstellung eines Chat-Bots Python oder Node.js kennen muss. Aber die Wahrheit ist, dass ein Chat-Bot auf PHP nicht nur machbar, sondern auch sehr praktisch ist. PHP ist eine ausgereifte Sprache mit einer riesigen Community und eignet sich hervorragend für schnelles Prototyping und den Start von Bots.
\nIn diesem Leitfaden gehen wir den Weg von null bis zu einem funktionierenden Telegram-Bot auf PHP. Wir werden zwei Ansätze behandeln: einen einfachen Echo-Bot auf Localhost und einen Bot mit Datenbankanbindung. Spoiler: Es wird viel Code geben, den Sie kopieren und sofort ausführen können.
\n\nWas ist ein Chat-Bot und wie funktioniert er?
\nBevor wir Code schreiben, lassen Sie uns die Architektur verstehen. Ein Chat-Bot ist ein Programm, das eine Nachricht von einem Benutzer empfängt, sie verarbeitet und eine Antwort sendet. Im Kontext von Telegram (der beliebtesten Plattform für Bots) sieht das Schema so aus:
\n- \n
- Der Benutzer schreibt dem Bot in Telegram. \n
- Telegram sendet eine POST-Anfrage an Ihren Server (Webhook) oder Sie fragen den Server ständig selbst ab (Long Polling). \n
- Ihr PHP-Skript verarbeitet die Anfrage und sendet eine Antwort über die Telegram-API. \n
Wir werden Webhook verwenden – das ist eine moderne und schnelle Methode. Stellen Sie sich vor, Telegram klopft jedes Mal an die Tür Ihres Servers, wenn eine neue Nachricht eingeht. Praktisch, oder?
\n\nVorbereitung: Was wird für den Start benötigt?
\nFür die Erstellung eines einfachen Chat-Bots auf PHP benötigen Sie:
\n- \n
- Hosting oder einen lokalen Server (OpenServer, XAMPP, MAMP) mit PHP 7.4+. \n
- Internetzugang (zur Registrierung des Bots in Telegram). \n
- Grundkenntnisse in PHP (Variablen, Funktionen, Arbeit mit JSON). \n
Wenn Sie kein Hosting haben, ist das kein Problem – in der Testphase können Sie Localhost mit dem Dienstprogramm ngrok verwenden, das eine temporäre öffentliche URL erstellt. Aber dazu später mehr.
Schritt 1. Registrierung des Bots in Telegram
\nGehen Sie zu Telegram, finden Sie BotFather (den offiziellen Bot zum Erstellen von Bots) und geben Sie den Befehl /newbot ein. Beantworten Sie die Fragen: Geben Sie einen Namen (z. B. MyTestBot) und einen Username (muss auf bot enden, z. B. my_test_pythonlib_bot).
Nach erfolgreicher Registrierung gibt Ihnen BotFather einen Token – das ist der Zugangsschlüssel zur API. Er sieht so aus: 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Bewahren Sie ihn an einem sicheren Ort auf (am besten in einer .env-Datei, aber der Einfachheit halber hardcoden wir ihn vorerst).
Wichtig: Zeigen Sie Ihren Token niemandem! Das ist das Passwort für Ihren Bot.
\n\nSchritt 2. Einfachster Echo-Bot auf PHP (Webhook)
\nErstellen Sie eine Datei bot.php im Stammverzeichnis Ihrer Website. Dieses Skript empfängt Anfragen von Telegram und antwortet mit demselben Text (Echo).
<?php\n// Daten von Telegram empfangen\n$content = file_get_contents("php://input");\n$update = json_decode($content, true);\n\n// Prüfen, ob eine Nachricht vorhanden ist\nif (!$update) {\n exit;\n}\n\n// Chat-ID und Nachrichtentext extrahieren\n$chat_id = $update['message']['chat']['id'];\n$text = $update['message']['text'];\n\n// Token Ihres Bots\n$token = "IHR_TOKEN_HIER";\n\n// Antwort senden (Echo)\n$url = "https://api.telegram.org/bot{$token}/sendMessage";\n$data = [\n 'chat_id' => $chat_id,\n 'text' => "Sie haben geschrieben: " . $text\n];\n\n// cURL zum Senden der Anfrage verwenden\n$ch = curl_init();\ncurl_setopt($ch, CURLOPT_URL, $url);\ncurl_setopt($ch, CURLOPT_POST, 1);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, $data);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n$result = curl_exec($ch);\ncurl_close($ch);\n?>\n\nWie funktioniert das?
\n- \n
- Telegram sendet eine POST-Anfrage an Ihre Datei
bot.php. \n - Wir lesen die Eingabe