Eigenen Telegram Bot mit PHP erstellen

Profilbild von Florian Schmidt
Vom 30. Juni 2015

Vor einigen Tagen habe ich dir schon den Netzleben Telegram Bot vorgestellt. Wie du selber so einen Bot in PHP erstellen kannst, habe ich in diesem Beitrag mal zusammen gefasst.

Dieser Artikel wurde zuletzt vor über einem Jahr aktualisiert. Die Inhalte könnten inzwischen nicht mehr aktuell sein.

Vor einigen Tagen habe ich dir schon den Netzleben Telegram Bot vorgestellt. Wie du selber so einen Bot in PHP erstellen kannst, habe ich in diesem Beitrag mal zusammen gefasst.

Vorbereitungen

Der Bot braucht einige Vorbereitungen. Meine Telegram Bot läuft bei Uberspace (zum Erfahrungsbericht), deiner wird dort also auch laufen.

Auf einem normalen Webspace siehts eher schwierig aus, da ich Memcached einsetze. Bei Uberspace ist das kein Problem, wie Peer schon hier im Blog beschrieben hat.

Außerdem brauchst du ein valides SSL-Zertifikat, diese gibt es kostenlos bei StartSSL. Alternativ kannst du auch die (primäre) Subdomain deines Uberspace nutzen, also $nutzername.$host.uberspace.de. Hier greift dann das Wildcard-Zertifikat von Uberspace.

Zu guter Letzt brauchst du noch einen kostenlosen Account bei import.io. Dies ist ein Dienst, welcher Daten einer Website ausliest und dir dann per API bereit stellt. Hier musst du also nur die URL deines Blogs angeben, das sollte an Konfiguration ausreichen.

Installation

Die Installation ist eigentlich recht einfach. Du musst zuerst den Code von GitHub herunter laden und diesen in deinen Webspace schieben. Anschließend einfach die Konfigurationsschritte aus der GitHub-Readme lesen und abarbeiten. Innerhalb von 10 - 15 Minuten sollte dein Bot am Start sein.

Konfiguration

Die Konfiguration sollte eigentlich selbsterklärend sein, solange du einigermaßen Englisch lesen kannst.

Auf jeden Fall solltest du aber die Texte ganz am Ende der Konfiguration anpassen. Deutsche Texte passen für einen deutschen Blog natürlich besser ;-)

Als Tipp: Du kannst da auch /kommando und @nutzername drin nutzen, Telegram verlinkt das dann automatisch. Eine neue Zeile erreichst du mit \n.

Fotos versenden

Möchtest du nicht nur Texte, sondern auch Fotos versenden? Nichts leichter als das! Die sendmessage-Methode hat dies schon von sich aus implementiert. Nur der Aufruf ist etwas anders.

sendmessage('message_type', 'user_id', $filepath);

Du musst als ersten Parameter den Message-type anpassen. Für Texte ist dies message, Bilder kannst du mit photo, Dokumente (auch GIFs) mit document versenden. Der dritte Parameter ist dann der relative Pfad zu der Datei. Hier mal ein Beispiel, das Bild picture.png liegt im gleichen Ordner wie die Bot-Datei.

sendmessage('photo', $message["message"]["from"]["id"], 'picture.png');

Der mime-type wird dabei dann vom Skript automatisch erkannt.

Noch Fragen?

Hast du noch Fragen, so kannst du dich jederzeit an mich wenden. Entweder direkt hier im Blog als Kommentar oder über Telegram (@schmidtflo). Und ansonsten darfst du natürlich auch gerne dem Netzleben-Channel auf Telegram folgen :-)

  • # Telegram
  • # Bot

Du suchst die Kommentare?

Keine Sorge, die sind nicht verloren! Es dauert aber noch eine Weile, bis sie wieder zu sehen sind und du neue Kommentare hinterlassen kannst.

Netzleben ist frisch von einer alten Kirby-Website auf eine neue, Statamic-basierte Website umgezogen. Leider ist das Plugin für Kommentare mit Statamic 3 noch nicht kompatibel.