Anleitung: Eingehende SMS an Telegram weiterleiten

Aus dem Alltag unserer Kunden: Nutzen Sie den Telegram Chatbot, um SMS zu empfangen

Das Schöne an einem SMS-Gateway ist, dass Sie von SMS als starkem Medium profitieren können, während die Möglichkeiten des Gateways Ihnen eine sehr große Flexibilität bieten. Insbesondere die Funktion zum Weiterleiten von SMS wird von unseren Kunden sehr gerne genutzt, um viele kreative Anwendungsszenarien zu realisieren. Einer unserer Kunden hatte zum Beispiel folgenden Wunsch: Er wollte Inbound-SMS an Telegram weiterleiten.

Die Idee – Eingehende SMS an Telegram weiterleiten

Unser Kunde empfängt SMS über eine eigene Inboundnummer. Sowohl der Text der eingehenden SMS, als auch der Absender soll an den Chatbot weitergeleitet werden. Eine Weiterleitung ist zwar ohne Probleme aus unserer Webapp möglich, doch der Zusatz, dass sowohl Text als auch Absender weitergeleitet werden verlangt nach zusätzlichen Parametern.

Die Umsetzung

Um diese Idee in die Tat umzusetzen, brauchen wir drei Komponenten: Den Chatbot, eine Chat ID und die eigentliche Umleitung der SMS. Den Chatbot legen wir in Telegram an, woraufhin wir die Chat-ID ermitteln können. Die Weiterleitung legen wir in der seven-Webapp fest. Sollten Sie schon einen Chatbot haben und die Chat-ID kennen, können Sie einfach zum Punkt Die Weiterleitung springen.
Fangen wir an!

Der Chatbot

Zuerst erstellen wir einen Telegrambot. Dazu benötigen Sie:

  • Einen Telegram-Account.
  • Zugang zum Telegram-Messenger.

Öffnen Sie den Messenger und loggen Sie sich gegebenenfalls ein. Suchen Sie dann in der Suchleiste für Kontakte nach @BotFather und wählen Sie den BotFather aus. Beachten Sie, dass der korrekte Bot einen blauen Haken hat. Dann klicken Sie im Chat auf Starten.

In diesem Chat können Sie Ihre Bots verwalten und neue Bots erstellen. Wir möchten einen neuen Bot anlegen und senden dafür den Befehl /newbot. Sie werden dazu aufgefordert, einen Namen für Ihren Bot auszuwählen. Dieser Name wird in der Konversation angezeigt. Danach wählen Sie noch einen Benutzernamen für Ihren Bot aus.  Dieser muss mit „bot“ aufhören.

Wählen Sie den richtigen Bot aus. Sie erkennen ihn an dem blauen Haken.

Vorsicht, nur der obere Bot ist der richtige!

So weit, so gut! Sie haben Ihren Telegram-Bot erstellt. Sie erhalten in der Bestätigungsnachricht den Link zur Konversation mit Ihrem neuen Bot und Ihr Token, das für uns gleich noch wichtig wird.

Die Chat-ID

Jetzt fehlt uns noch die Chat-ID, um erfolgreich eine Weiterleitung einrichten zu können. Es gibt einige Wege, diese ID herauszufinden, doch wir empfehlen ihnen diesen:

Öffnen Sie den Chat mit Ihrem neuen Bot und klicken Sie auf „Starten“. Schicken Sie dem Bot eine Nachricht.

Rufen Sie dann https://api.telegram.org/botTOKEN/getUpdates auf. Statt TOKEN setzen Sie natürlich das Token für Ihren Bot ein, das Sie vom BotFather erhalten haben.
In Ihrer Rückgabe sehen Sie die Chat-ID. Sie steht hinter dem Wert "id", nicht hinter "update_id".

{
  "ok":true,
  "result":[
    {
      "update_id":583557485,
      "message":{
        "message_id":3,
        "from":{
          "id":1687380549,
          "is_bot":false,
          "first_name":"Jana",
          "last_name":"L",
          "language_code":"de"
        },
        "chat":{
          "id":1687380549,
          "first_name":"Jana",
          "last_name":"L”",
          "type":"private"
        },
        "date":1615446212,
        "text":"Hello again"
      }
    }
  ]
}

In einem unserer Versuche mussten wir unserem Bot noch eine zweite Nachricht senden, um eine andere Ausgabe als {"ok":true,"result": } zu erhalten. Vielleicht hätte es ein wenig mehr Geduld aber auch getan! In den anderen Fällen funktionierte die Ausgabe sofort nach Senden der ersten Nachricht.

Die Weiterleitung

Jetzt möchten wir, dass Ihr neuer Chatbot Ihnen eingehende SMS mit Ihrem Absender anzeigt. Dazu loggen Sie sich in unserer Webapp ein und rufen den Menüpunkt Entwickler auf. Auf der rechten Seite finden Sie Ihre Webhooks. Wir möchten für unsere Chatbot-Funktion einen neuen Webhook anlegen und klicken dazu auf das grüne Pluszeichen.

Die Weiterleitung von SMS via Webhook können Sie im Entwickler-Bereich festlegen
In den Webhook-Einstellungen konfigurieren Sie die Weiterleitung der SMS zu Telegram

Fügen Sie diese URL ein: https://api.telegram.org/botMEINTOKEN/sendMessage?chat_id=MEINECHATID&text=SMS+von+:+

Statt MEINTOKEN nutzen Sie das Token, das Sie vorhin erhalten haben, statt MEINECHATID setzen Sie die ermittelte Chat-ID ein.

Unter Ereignis wählen Sie SMS_MO aus. Unter Filter können Sie einstellen, ob Sie alle eingehenden SMS an Telegram weiterleiten möchten oder nur die, die an eine bestimmte Nummer gesendet werden. Treffen Sie Ihre Auswahl und speichern Sie.

Jetzt können Sie Ihre eingehenden SMS an Telegram weiterleiten!

Haben Sie auch ein Beispiel, wie Sie unsere Produkte nutzen? Haben Sie Ideen, die Sie bisher noch nicht umsetzen konnten?
Wir freuen uns, wenn Sie uns Ihre Geschichte erzählen!

Mit besten Grüßen
Ihr seven Team

Headerbild: iStock.com/tdhster

4 Kommentare. Leave new

  • Geht das auch umgekehrt? Ich schreibe eine Nachricht an einen bestimmten Kontakt und er bekommt neben meiner Nachricht auf Telegram zusätzlich eine SMS? Er ist zu blöd, Telegram so einzustellen, dass der Hintergrundprozess aktiv bleibt, damit er über neue Telegram-Nachrichten informiert wird.

    Antworten
    • Moin, das geht bestimmt mit entsprechenden Workarounds, aber die sind nicht einfacher aufzusetzen, als die Telegram-Benachrichtigungen einzustellen.



      Die einfachste Option ist sicherlich eine direkte SMS an den Kontakt, denn für den SMS-Versand brauchst du ja sowieso die Empfängernummer. 



      Ansonsten ist die Verknüpfung über IFTTT vielleicht interessant für dich (die Empfängernummer brauchst du aber auch hier):
      
Telegram: https://ifttt.com/telegram
      Unser Service: https://ifttt.com/sevenio

      Hoffe das hilft dir erstmal weiter!

      (Am 19.4.23 bearbeitet: IFTTT Link aktualisiert)

      Antworten
  • Oliver Weber
    1. April 2024 16:41

    Danke für die Anleitung. Ich habe diese 1:1 umgesetzt. Leider empfängt mein Telegram-Bot die SMS jedoch nicht. An was könnte das liegen?

    Antworten
    • Moin, das ist ja merkwürdig.
      Leider ist es so „aus der Ferne“ schwer zu sagen, woran es liegt, deshalb lass uns eingrenzen, was passiert sein könnte.

      Taucht die SMS die du an die Inbound-Nummer geschickt hast in deinem Logbuch auf?

      Falls ja, prüfe doch bitte einmal:
      Stimmen Token und Chat-ID in der URL, die du beim Anlegen des Webhooks eingefügt hast?
      Stimmt die URL auch sonst (keine Tippfehler, die sich beim Ersetzen von Token und ID eingeschlichen haben)?

      Das sind die gängigsten Fehler, die sich in dieser Situation schnell einschleichen können.

      Falls die SMS nicht im Logbuch auftaucht, prüfe bitte einmal die Nummer, an die die SMS verschickt wird, vielleicht gibt es dort einen Tippfehler.

      Lass mich gern wissen, ob es daran liegt oder wir weiter suchen müssen 🙂

      Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fill out this field
Fill out this field
Bitte gib eine gültige E-Mail-Adresse ein.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.