Telegram Bot API

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
    • Offizieller Beitrag

    Moin ihr,

    seit knapp einem Monat wurde in Telegram die Bot API rausgegeben und seitdem kommen mir Ideen über Ideen...
    Kurz zu der API:
    Jeder Benutzer kann über einen Chat mit dem Botfather einen Bot anlegen. Dieser Bot bekommt dann einen Zugriffs Token und mit diesem Bot lassen sich viele Dinge anstellen.
    Zum einen ist da der REST Service der via JSON angesprochen werden kann. In diesem Service befinden sich dann Methoden wie zbs. sendMessage(UserId, Text), sendImage oder sendDocument um Dateien zu verschicken. Das wäre aber nur die eine richtung... Im Chat selbst können mittels Befehle auch andere REST Services angesprochen werden, um dort irgendwelche Daten abzugreifen... Einfach klasse! Somit wäre es Beispielsweise möglich die neuesten Wetter Daten von irgendwelchen Wetterdiensten anzuzeigen.
    Meine Ideen beschränken sich zunächst auf die eine Richtung (Software -> Telegram Bot -> Benutzer). Einer dieser Ideen, ist eine Erweiterung für dieses Forum. Immer wenn jemand den Melde Button drückt, bekommen wir Moderatoren in einer Gruppe die Meldung zugeschickt und können (je nach Laune :P) dann reagieren. Diese Erweiterung ist eigentlich komplett entwickelt aber bei der Intergration ins Forum gibt es noch einige Probleme...

    Naja die andere Idee ist, meinen Server abzusichern - bzw. die absicherung ein wenig zu verbessern. Vorher war es bei mir so, dass wenn sich jemand via SSH auf dem Server anmeldet, ich eine E-Mail bekomme mit ein paar Informationen... auf dauer sind diese Emails irgendwie naja... Mit hilfe von curl konnte ich den REST Service von Telegram anzapfen und mir darüber eine Nachricht zukommen lassen.
    So eine Nachricht sieht nun bei mir so aus:

    Zitat


    23 Jul 2015 09:43: USER logged in to DOMAIN (IP) from LOGIN-IP - ISP - Dortmund, Nordrhein-Westfalen, DE on port XX

    Aber genug von meinen Ideen... ich wollte mal rumfragen ob hier jemand schonmal diese Bot API genutzt hat oder es noch vor hat :)
    Ich freue mich auf eure Ideen!

    Ich bin ein gefallener Engel namens Turael.

    Einst vor langer Zeit rebelierte ich im Himmel bis Gott mich auf die Erde verbannte.

    Doch meine taten werden kein ende finden....

  • Die API hab ich mir auch schon angesehen, dabei blieb mir die Frage offen, ob diese Bots auch privat eingerichtet werden können. Sozusagen, falls jemand auf den Bot-Namen kommen sollte (wie auch immer das passieren sollte), das dieser jemand nicht in die Gruppe kommt.

    Die Idee mit dem SSH Login klingt gut, würde mich auch interessieren.

    Zudem wollte ich mich per Telegram informieren lassen, wenn bei mir in der Wohnung eine Tür aufgeht oder die Türklingel klingelt. Da bin ich zurzeit noch bei der Umsetzung...
    Oder wenn bei meiner Webcam eine Bewegung festgestellt wird, dann soll die mich informieren und mir die Bilder zuschicken...

    Hach da gibts so vieles :X

  • Benutzt ihr für den Telegram "Bot" einen gesonderten Account? Ich habe einen Telegram-Account und wenn ich mir selber eine Nachricht schicke, wird mir das am iPhone nicht signalisiert, sondern einfach nur in einem Chat mit mir selber dargestellt. Wie macht ihr das?

    • Offizieller Beitrag


    Die API hab ich mir auch schon angesehen, dabei blieb mir die Frage offen, ob diese Bots auch privat eingerichtet werden können. Sozusagen, falls jemand auf den Bot-Namen kommen sollte (wie auch immer das passieren sollte), das dieser jemand nicht in die Gruppe kommt.

    Klar Antwort: Jain :D Der Bot ist erstmal mehr oder weniger öffentlich. Durch den Access Token (von Botfather) bekommst du ein gewissen Grad an Privatsphäre. Wenn jemand diesen Token errät (was ich erstmal für fast unmöglich halte), dann hätte jemand zugriff auf den Bot und könnte dann irgendwelche Dinge tun. Soweit ich weiß gibt es aber keine Methode im REST Service wo man einen Benutzer einer Gruppe hinzufügen kann... denke das muss man dann doch noch per Hand machen.


    Benutzt ihr für den Telegram "Bot" einen gesonderten Account? Ich habe einen Telegram-Account und wenn ich mir selber eine Nachricht schicke, wird mir das am iPhone nicht signalisiert, sondern einfach nur in einem Chat mit mir selber dargestellt. Wie macht ihr das?

    Nein brauchst du nicht. Der Bot ist ein eigenständiger "Benutzer" der dir Nachrichten schicken kann - also dürftest du auf deinem iPhone auch die Nachrichten lesen können ;)

  • Hallo Turael,


    Benutzt ihr für den Telegram "Bot" einen gesonderten Account? Ich habe einen Telegram-Account und wenn ich mir selber eine Nachricht schicke, wird mir das am iPhone nicht signalisiert, sondern einfach nur in einem Chat mit mir selber dargestellt. Wie macht ihr das?

    Nein brauchst du nicht. Der Bot ist ein eigenständiger "Benutzer" der dir Nachrichten schicken kann - also dürftest du auf deinem iPhone auch die Nachrichten lesen können ;)
    [/quote]

    Ja, das ist klar, dass ich Nachrichten zugestellt bekomme und auch lesen kann. Ich fände es aber zwecks "Alarmierung" einfacher "schicker", wenn es wie bei anderen Benutzern auch eine Info gäbe. Wenn ich mir nur selber schreibe (was der Pi ja quasi macht), dann werde ich nicht über gewünschte Ereignisse informiert. Oder ich schicke es meiner Frau und die meldet sich dann schon bei mir ;)

    Vielen Dank und viele Grüße
    Thomas

  • Mal ne stumpfe Frage, aber für das, was ihr machen wollt, braucht ihr doch keinen Telegram Bot, oder?!

    Es gibt ja ein Telegram-CLI (gibts hier auch mehrere Tutorials drüber) mit dem man Telegram aufm Raspberry laufen lassen kann. Und dort gibt es auch die Möglichkeit, mit LUA gewisse Dinge zu tun.
    Ich habe dies beispielsweise auch und lasse mir aus Skripten heraus mit Telegram Statusnachrichten schicken oder kann an den RPi eine Nachricht schicken und dieser weckt meinen PC per WOL auf oder führt einen Speedtest durch und sendet mir das Ergebnis.

    Ein Telegram-Bot ist meiner Meinung nur dann sinnvoll, wenn er für die breite Masse gedacht ist und nicht für kleinere private Spielereien. Und mit der CLI-Methode hat man auch einen gewissen Grad Sicherheit, da man so die Handynummer des Nutzers haben muss und in den Skripten ja seine eigene Handynummer fest eintragen kann.

    Viele Grüße

    Tobi


  • Die API hab ich mir auch schon angesehen, dabei blieb mir die Frage offen, ob diese Bots auch privat eingerichtet werden können. Sozusagen, falls jemand auf den Bot-Namen kommen sollte (wie auch immer das passieren sollte), das dieser jemand nicht in die Gruppe kommt.

    Die Idee mit dem SSH Login klingt gut, würde mich auch interessieren.

    Zudem wollte ich mich per Telegram informieren lassen, wenn bei mir in der Wohnung eine Tür aufgeht oder die Türklingel klingelt. Da bin ich zurzeit noch bei der Umsetzung...
    Oder wenn bei meiner Webcam eine Bewegung festgestellt wird, dann soll die mich informieren und mir die Bilder zuschicken...

    Hach da gibts so vieles :X

    Wenn du Fragen zum Thema Telegram und LUA hast da kann ich dir gerne helfen, ich habe mich intensivst mit diesem Thema beschäftigt. :)

    A: Was ist dein dunkelstes Geheimnis?
    B: Das kann ich dir nicht sagen.
    A: sudo was ist dein dunkelstes Geheimnis?

    • Offizieller Beitrag


    Ich fände es aber zwecks "Alarmierung" einfacher "schicker", wenn es wie bei anderen Benutzern auch eine Info gäbe.

    Was genau meinst du damit?


    Mal ne stumpfe Frage, aber für das, was ihr machen wollt, braucht ihr doch keinen Telegram Bot, oder?!

    Es gibt ja ein Telegram-CLI (gibts hier auch mehrere Tutorials drüber) mit dem man Telegram aufm Raspberry laufen lassen kann.

    Klar könnte man das ganze auch über das Telegram-CLI Tool basteln... aber dazu braucht man wieder eine eigene Handynummer, muss sich in LUA irgendwie auskennen und teilweise hat mich das irgendwie abgeschreckt... ich wollte eine einfache Lösung für kleinere Probleme und wollte mich nicht extra in eine eigene Sprache einarbeiten...


    Ein Telegram-Bot ist meiner Meinung nur dann sinnvoll, wenn er für die breite Masse gedacht ist und nicht für kleinere private Spielereien. Und mit der CLI-Methode hat man auch einen gewissen Grad Sicherheit, da man so die Handynummer des Nutzers haben muss und in den Skripten ja seine eigene Handynummer fest eintragen kann.

    Ich denke, dass ist eine sehr interessante Frage. Warum sollte so ein Bot nur für die breite Masse sein? Ok was ich da so geplant habe sind wirklich nur kleinere Projekte aber dennoch ist es eine super alternative um mal keine Info-Mail zu schreiben...
    Allerdings versteh ich deine Bedenken mit der SIcherheit noch nicht so ganz. Warum glaubst du ist der Bot unsicherer als die CLI-Methode?

  • Hallo Turael,

    mit "Alarmierung" meine ich, dass ich es prima fände, wenn meine Raspis mir per Telegram eine Info schicken, wenn ein Ereignis eintritt, über das ich zeitnah informiert werden möchte. Und zwar so, dass das Smartphone aufgrund der Info auch informieren kann, wie es bei jeder Nachricht von anderen Benutzern auch macht. Wenn ich mir aber unter meinem eigenen Account Nachrichten schicke, dann kann ich das zwar lesen; Telegram informiert aber nicht per Sound usw. :(
    D.h. ich komme um einen zweiten Account (auf einem nicht genutzten Handy) extra für meine Raspis als Absender nicht drum rum. Schaaadäää..

    Viele Grüße
    Thomas

    • Offizieller Beitrag


    Kann so ein Bot nicht auch so programmiert werden, dass er nur von bestimmten Nutzern (Nick oder Telefonnummer) Aufträge entgegennimmt und bearbeitet. Unbekannte Nutzer werden einfach ignoriert.

    Wenn du aus dem Chat herraus einen anderen Webservice ansprechen willst, musst du diese den Webservice beschränken... aber vielleicht gibts dazu auch eine Funktion in der Bot API... werd ich die Tage mal nach schauen :)


    ...Und zwar so, dass das Smartphone aufgrund der Info auch informieren kann, wie es bei jeder Nachricht von anderen Benutzern auch macht. Wenn ich mir aber unter meinem eigenen Account Nachrichten schicke, dann kann ich das zwar lesen; Telegram informiert aber nicht per Sound usw. :(

    Ich glaub du missverstehst mich... der Bot ist wie oben geschrieben quasi ein eigenständiger Benutzer dem du Nachrichten schreiben oder Empfangen kannst. Mein SSH Login Melder Bot habe ich auch mit meinem normalen Telegram Account erstellt. Trotzdem bekomme ich jederzeit und überall eine Meldung von dem Bot ;)
    Als kleinen Beweis: Du kannst meinen Bot (theoretisch) auch suchen mit @SSHReporterBot Wenn du ihn mal angeschrieben hast sag Bescheid dann schreib ich dir darüber mal zurück oder so ;)


  • Done. Komisch, da ist automatisch eine "/start" Nachricht raus gegangen. Und ein Gruß von mir.
    Ja, Du hast Recht: Dein Bot wartet auf Input, mein CLI soll Output machen. Völlig unterschiedliche Dinge...

    Du wehrst dich ja regelrecht gegen diese API. Warum sollte der Bot denn kein Output liefern können? Das geht natürlich auch.

    Hier mal ein Beispiel:

    Ich bin noch ganz am Anfang, aber es läuft. Mein Raspberry Pi ist mit meiner Türklingel "verbunden" und sobald es klingelt, reagiert der drauf und schickt mir eine Nachricht.

    • Offizieller Beitrag

    Das ist nur die eine Richtung. Mithilfe der Commands (welche du im Botfather definierst), kannst du einen deiner Webservices ansprechen :)
    Welche dann irgendwelche Infos beschaffen oder irgendwo etwas in eine Datenbank eintragen... oder so :D

    patlux:
    Sehr schön :) Wie hast du die URL aufgerufen? Via curl?

    Ich bin ein gefallener Engel namens Turael.

    Einst vor langer Zeit rebelierte ich im Himmel bis Gott mich auf die Erde verbannte.

    Doch meine taten werden kein ende finden....

    Einmal editiert, zuletzt von Turael (24. Juli 2015 um 20:58)

  • Turael: Ich programmier gerne in NodeJS und hab das ganze auch damit umgesetzt. Für NodeJS gibts ziemlich viele Module, ich verwende dieses hier. Damit starte ich dann den Bot. Im Hintergrund ruft das Modul vermutlich jede Sekunde ab, ob es Updates gibt. Zum Senden der Nachricht dann eben SendMessage.

    Ich habs jetzt erstmal so gelöst, dass ich einfach alle Nachrichten ignoriere, die nicht von mir kommen und meine Nachrichten auch nur an meine User-ID verschicke. Denn Nutzer entfernen oder blockieren geht damit nicht - soweit ich weiß.

    Hab ein wenig weiter gemacht:

    e1qs1.png

    Sehr nett :denker:


  • Mal ne stumpfe Frage, aber für das, was ihr machen wollt, braucht ihr doch keinen Telegram Bot, oder?!

    Es gibt ja ein Telegram-CLI (gibts hier auch mehrere Tutorials drüber) mit dem man Telegram aufm Raspberry laufen lassen kann. Und dort gibt es auch die Möglichkeit, mit LUA gewisse Dinge zu tun.
    Ich habe dies beispielsweise auch und lasse mir aus Skripten heraus mit Telegram Statusnachrichten schicken oder kann an den RPi eine Nachricht schicken und dieser weckt meinen PC per WOL auf oder führt einen Speedtest durch und sendet mir das Ergebnis.

    Ein Telegram-Bot ist meiner Meinung nur dann sinnvoll, wenn er für die breite Masse gedacht ist und nicht für kleinere private Spielereien. Und mit der CLI-Methode hat man auch einen gewissen Grad Sicherheit, da man so die Handynummer des Nutzers haben muss und in den Skripten ja seine eigene Handynummer fest eintragen kann.

    Viele Grüße

    Tobi

    Also wenn die Frage "stumpf" war dann reiehe ich mich da mit ein.

    Ein BOT hab ich in einem Chat um etwas Spaß in die Bude zu bringen.

    Für Melde Dienste gibt es zig andere dieeinfach, schneller, sicherer sind.

    Ich nehme z.B. https://pushover.net/

    Da jag ich mir Meldungen direkt aus der Shell, oder aus meinem Python Script ... und das Ding hat noch etliche Schnittstellen.

    Auch meine ganz billigen Komponenten aus China laufen ... aber nach 4 Wochen auf hoher See hat mein 1602 Display wohl etwas an Kontrast verloren.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!