Chat-Bots auf PHP: Ein praktischer Leitfaden für Anfänger

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

Einleitung: Warum ist PHP eine ausgezeichnete Wahl für einen Chat-Bot?

\n

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

\n

In 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\n

Was ist ein Chat-Bot und wie funktioniert er?

\n

Bevor 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
\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\n

Vorbereitung: Was wird für den Start benötigt?

\n

Fü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
\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.

\n\n

Schritt 1. Registrierung des Bots in Telegram

\n

Gehen 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).

\n

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

\n

Wichtig: Zeigen Sie Ihren Token niemandem! Das ist das Passwort für Ihren Bot.

\n\n

Schritt 2. Einfachster Echo-Bot auf PHP (Webhook)

\n

Erstellen Sie eine Datei bot.php im Stammverzeichnis Ihrer Website. Dieses Skript empfängt Anfragen von Telegram und antwortet mit demselben Text (Echo).

\n\n
<?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\n

Wie funktioniert das?

\n
    \n
  1. Telegram sendet eine POST-Anfrage an Ihre Datei bot.php.
  2. \n
  3. Wir lesen die Eingabe

Blogs

Buchempfehlungen