Erstellen Sie ein einfaches Benachrichtigungssystem mit Twilio CLI, programmierbarer Telefonie, Messaging und E-Mail

April 22, 2020
Autor:in:
Prüfer:in:

Überschrift im Bild

Dieses Tutorial ist für Sie, wenn Sie dringende Nachrichten an Ihre Kunden oder Mitarbeiter senden müssen, aber noch kein eingerichtetes Benachrichtigungssystem haben. In diesem Blogbeitrag zeigen wir Ihnen, wie Sie ein Bash-Skript erstellen, um schnell SMS-, Sprach- oder E-Mail-Benachrichtigungen an mehrere Empfänger in einem CSV zu senden.

Verlinkungen im Text führen häufig zu Englisch-sprachigen Webseiten

Voraussetzungen

Wenn Sie Nachrichten per SMS, Voice und E-Mail versenden, benötigen Sie sowohl ein Twilio-Konto (SMS und Voice) als auch ein Sendgrid-Konto (E-Mail). Hier erfahren Sie, wie Sie anfangen können:

  • Ein Twilio-Konto (Registrieren Sie sich für ein kostenloses Testkonto und erhalten Sie eine Gutschrift von $10)
  • Ein SendGrid-Konto (Registrieren Sie sich für ein kostenloses Testkonto, versenden Sie 40.000 E-Mails für 30 Tage, dann bis zu 100/Tag) - wird benötigt, um E-Mail-Benachrichtigungen zu versenden.
  • Homebrew (für Mac-Nutzer) oder Node.js (für Windows-Nutzer) zur Installation von Twilio CLI

Einrichten des SendGrid-Kontos

Wenn Sie dies noch nicht getan haben, gehen Sie zu sendgrid.com und melden Sie sich für ein kostenloses Konto an oder loggen Sie sich in Ihr bestehendes Konto ein.

Sie müssen eine E-Mail-Domäne besitzen oder die Kontrolle über diese Domäne haben, damit dieser Prozess erfolgreich ablaufen kann. Wir empfehlen dringend, den Domain-Authentifizierungsprozess abzuschließen, um die Zustellbarkeit von E-Mails zu erhöhen. Der Abschnitt "Senden Sie keine E-Mails von Domains, die Sie nicht kontrollieren" erklärt, warum dies notwendig ist. Ein Best Practice ist das Aufwärmen Ihrer IP-Adresse, um Ihre Absenderreputation zu verbessern.

Wählen Sie unter den API-Schlüsseln die Option API-Schlüssel erstellen:

Anzeige der Sendgrid Konsole

Wählen Sie einen API-Schlüsselnamen (z.B. Notifications App), wählen Sie "Eingeschränkter Zugriff", aktivieren Sie "Voller Zugriff beim Mailversand", erstellen und sehen Sie:

Anzeige der API Keys Seite in Sendgrid

Notieren Sie sich den erstellten API-Schlüssel. Kopieren Sie ihn und fügen Sie ihn an einen sicheren Ort ein, da Sie ihn nicht mehr sehen können, wenn Sie diese Seite verlassen.

Einrichten der Twilio CLI

Wenn Sie dies noch nicht getan haben, gehen Sie zu twilio.com und melden Sie sich für ein kostenloses Konto an, oder loggen Sie sich in Ihr bestehendes Konto ein. Notieren Sie sich Ihre Konto-SID und Ihr Auth Token, da Sie diese für die Anmeldung über die CLI in den folgenden Schritten benötigen.

Sie finden Ihre Konto-SID und Ihr Auth Token auf Ihrer Konsole:

Abbildung der Twilio Konsole

Twilio CLI ist ein Kommandozeilen-Schnittstellen-Tool, mit dem Sie Ihre Twilio-Ressourcen direkt von Ihrem Terminal oder Ihrer Eingabeaufforderung aus verwalten können. Dies ist hilfreich, um zu verhindern, dass wir zwischen dem Browser und unserem Terminal hin- und herschalten, da wir die Eingabeaufforderung zur Entwicklung unserer Anwendung verwenden werden. Installieren Sie Twilio CLI für Ihr jeweiliges Betriebssystem, indem Sie dieser Anleitung folgen.

Um E-Mails zu versenden, benötigen wir die Funktion '--no-attachment', die an 'email:send' angehängt wird. Diese ist in Twilio CLI 2.0.0 oder neueren Versionen verfügbar.

Sobald Twilio CLI installiert ist, melden Sie sich bei Ihrem Konto an, indem Sie diesen Befehl in Ihrem Terminal ausführen:

$ twilio login

Sie werden aufgefordert, eine lokale ID für die Anmeldedaten einzugeben, die als Shorthand Identifier bekannt ist, gefolgt von Ihrer Konto-SID und dem Auth Token:

Shorthand Identifier Code

Als nächstes installieren Sie die CLI-Autovervollständigung, um Unterstützung für die Bash-Vervollständigung hinzuzufügen:

$ twilio autocomplete bash

Lassen Sie uns die CLI testen, indem wir die zum Kauf verfügbaren Telefonnummern nach Vorwahlen auflisten. Achten Sie darauf, den --area-code durch den Wert der gewünschten Region zu ersetzen.

$ twilio api:core:available-phone-numbers:local:list \
 --area-code="222" --country-code US

Abbildung der Liste der verfügbaren Telefonnummern

Kaufen Sie jetzt eine verfügbare Telefonnummer, indem Sie das Attribut --phone-number durch eine Nummer aus dem vorherigen Befehl ersetzen:

$ twilio api:core:incoming-phone-numbers:create \
 --phone-number="+ 12223334444"

Abbildung des Codes für den Kauf der Telefonnummer

Nachdem Sie den Eintrag und Kauf einer Telefonnummer über die CLI getestet haben, überprüfen Sie Ihre Telefonnummern mit einem Filter für die Vorwahl:

$ twilio api:core:incoming-phone-numbers:list --phone-number="+1222"

Es gibt 3 Arten von Nummern für A2P-Nachrichten (Application-to-Person) (Short Code, Toll-free, Long Code) mit jeweils unterschiedlichen Eigenschaften. Bitte lesen Sie dieses Dokument, um die Unterschiede zwischen Short Code und Toll-free besser zu verstehen.

In diesem Blog zur SMS-Performance werden auch die Unterschiede und bewährten Verfahren für den Versand von SMS über die verschiedenen Rufnummerntypen skizziert.

In diesem Blog werden wir einen Long Code für eine einfache Anwendung mit nicht mehr als 200 Empfängern und nicht mehr als einer Nachricht pro Sekunde verwenden. Wenn Sie vorhaben, mehr als 7.200 Nachrichten pro Tag zu versenden, wenden Sie sich bitte an Twilio.

Für einen höheren Durchsatz und Umfang sollten Sie stattdessen eine Kurzwahlnummer - Short Code (nur Nachrichten) oder eine gebührenfreie Nummer - Toll-free - mit hohem Durchsatz in Betracht ziehen.

Testen Sie, ob die CLI richtig funktioniert, indem Sie eine einfache Nachricht an Ihr mobiles Gerät senden:

$ twilio api:core:messages:create \
 --from "+12223334444" \  --to "+15556667777" \
 --body "Hello from Twilio!"

Das --from attribut ist die Twilio-Nummer, die Sie gekauft haben, und das --to attribut ist Ihre Test-Handynummer.

Um E-Mail-Benachrichtigungen zu testen, setzen Sie die Umgebungsvariable SENDGRID_API_KEY mit einem Twilio SendGrid API-Schlüssel:

$ export SENDGRID_API_KEY=SG.xyz.abc

Testen Sie, ob die CLI richtig funktioniert, indem Sie eine einfache E-Mail-Nachricht senden:

$ twilio email:send --to='to@mail.com' --from='from@mail.com' --subject='My first Twilio SendGrid Email' --text='Yes it works!' --no-attachment

Ihr Ergebnis sollte den unten aufgeführten Daten ähnlich sein:

Your email contains the message "Yes it works!" sent from "from@mail.com" to "to@mail.com" with the subject line "My first Twilio SendGrid Email" has been sent!

Das --from attribut ist Ihre E-Mail-Adresse und das --to attribut ist eine Test-E-Mail-Adresse.

Sie können mit Hilfe des Activity Feeds überprüfen, ob Ihre E-Mail erfolgreich zugestellt wurde:

Darstellung des Activity Feeds in der Sendgrid Konsole

Abbildung eines Eintrags in der Sendehistorie in der Sendgrid Konsole

Erstellen Sie Ihre Mitarbeiter- oder Kundenliste

Wie oben erwähnt, muss eine Liste der Empfänger in einer einfachen Tabelle (.csv-Datei) erstellt werden, die die Informationen enthält, die Sie für den Versand von Benachrichtigungen verwenden werden. Für jeden Anwendungsfall (SMS vs. Telefonie vs. E-Mail) werden die Felder unterschiedlich sein. Wir werden Ihnen ein einfaches Beispiel zeigen, in dem wir SMS-, Sprach- und E-Mail-Grüße an unsere Kunden namentlich versenden und sie über die Ladenöffnungszeiten an einem bestimmten Datum informieren wollen. Wir gehen davon aus, dass die Kunden OPTED IN sind, um solche Benachrichtigungen zu erhalten. Diese Beispiele könnten auch leicht modifiziert werden, um Informationen an Mitarbeiter zu senden, die über eine Büroschließung benachrichtigt werden, an Schüler und Eltern über die Schulzeiten oder über alle Nachrichten, die wichtig sind und eine sofortige Reaktion erfordern.

Erstellen Sie in diesem Beispiel eine kleine Datei notification.csv mit den folgenden Spalten und speichern Sie sie auf Ihrem Computer:

Darstellung einer CSV Datei

Wenn Sie Vi oder einen anderen CLI-Editor bevorzugen, sollte es wie folgt aussehen:

Channel,Date,HoursStart,HoursStop,From,To,Name
voice,4/15/20,8:00,17:00,1222333444,15556667777,Twilio Voice
sms,4/15/20,8:00,17:00,1222333444,18889990000,Twilio SMS
email,4/15/20,8:00,17:00,from@mail.com,to@mail.com,Twilio Email

Achten Sie darauf, die Spalten From und To durch die richtigen Telefonnummern oder E-Mail-Adressen zu ersetzen.

Erstellen Sie ein einfaches Bash-Skript zum Senden der Benachrichtigungen

Wir werden nun ein Bash-Skript (oder eine einfache Textdatei mit einer Reihe von Befehlen) erstellen, um unser CSV zu analysieren und die Empfänger entsprechend zu kontaktieren. Wenn Sie neu im Programmieren sind, lesen Sie bitte diese Anleitung, um mehr über Bash-Skripte zu erfahren.

Erstellen Sie in Ihrem Terminal eine neue Datei namens CliNotifications.sh:

$ touch CliNotifications.sh

Öffnen Sie nun die Datei in einem CLI-Editor Ihrer Wahl und fügen Sie den folgenden Code ein:

INPUT=notification.csv
OLDIFS=$IFS
IFS=,
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }
while read channel date hoursStart hoursStop from to name 
do
  if [[ $channel = "sms" ]];
  then
      echo "Date : $date"
      echo "HoursStart : $hoursStart"
      echo "HoursStop : $hoursStop"
      echo "From : $from"
      echo "Name : $name"
      echo "To : $to"
      echo "Channel : $channel"
      body="Hello "$name". Our working hours on "$date" will be from "$hoursStart" to "$hoursStop". Thank you!"
      echo $body
      twilio api:core:messages:create --to $to --from $from --body $body -o json
  fi
  if [[ $channel = "voice" ]];
  then
      echo "Date : $date"
      echo "HoursStart : $hoursStart"
      echo "HoursStop : $hoursStop"
      echo "From : $from"
      echo "Name : $name"
      echo "To : $to"
      echo "Channel : $channel"
      body="Hello "$name". Our working hours on "$date" will be from "$hoursStart" to "$hoursStop". Thank you!"
      echo $body
      twilio api:core:calls:create --twiml "<Response><Say>$body</Say></Response>" --to $to --from $from
  fi
  if [[ $channel = "email" ]];
  then
      echo "Date : $date"
      echo "HoursStart : $hoursStart"
      echo "HoursStop : $hoursStop"
      echo "From : $from"
      echo "To : $to"
      echo "Name : $name"
      echo "Channel : $channel"
      body="Hello "$name". Our working hours on "$date" will be from "$hoursStart" to "$hoursStop". Thank you!"
      echo $body
      twilio email:send --to $to --from $from --subject='Our working hours update' --text $body --no-attachment
  fi
sleep 1
done < $INPUT
IFS=$OLDIFS

Testen Sie das Skript

Stellen Sie sicher, dass Sie beide Dateien im gleichen Verzeichnis gespeichert haben.

Führen Sie Ihr Skript aus, indem Sie ./CliNotifications.sh ausführen und überprüfen Sie die Ergebnisse.

Dastellung eines SMS-Bash Scripts

Sie sollten eine SMS-Nachricht auf Ihrer ersten Nummer, eine Sprachnachricht auf Ihrer zweiten Nummer und eine E-Mail-Benachrichtigung erhalten haben, wie im Screenshot unten dargestellt.

Screenshot einer mit Twilio versandten SMS

Screenshot einer erhaltenen Email

Falls es nicht funktioniert, befolgen Sie diese Schritte zur Fehlerbehebung:

  • Wenn Sie eine Bash erhalten: bash: ./CliNotifications.sh: Permission denied - geben Sie den folgenden Befehl ein, um die Berechtigungen zu ändern: chmod 755 CliNotifications.sh
  • Prüfen Sie den Debugger auf Fehlermeldungen
  • Überprüfen Sie das Anrufprotokoll auf Fehlermeldungen (Aktive Nummern => Registerkarte Anrufprotokoll)

Darstellung des Anrufprotokolls in der Twilio Konsole

Schauen Sie auf die Registerkarten Details und Zusammenfassung der Einsichten:

Darstellung eines Anrufprotokolls in der Twilio Konsole
  • Überprüfen Sie das Meldungsprotokoll auf Fehlermeldungen (Aktive Nummern => Registerkarte Meldungsprotokoll)

Darstellung der Nachrichten Protokolle in der Twilio Konsole
  • Wenn der E-Mail-Test fehlschlägt (das Bash-Skript lädt diese Zeile nicht), hat Excel der Datei möglicherweise zusätzliche Formatierungsinformationen hinzugefügt. Versuchen Sie, die Datei mit einem CLI-Editor wie vi oder nano zu öffnen und erneut zu speichern.  
  • Überprüfen Sie auf dem SendGrid Dashboard den Aktivitäts-Feed. Zum Beispiel:

Darstellung des Activity Feeds in der Sendgrid Konsole

Erweitern Sie mit Ihren tatsächlichen Telefonnummern

Wenn alles gut funktioniert hat, können Sie alle echten Kunden-, Mitarbeiter- oder Studenteninformationen zu Ihrer Liste hinzufügen. Sie können die Nachrichten auch modifizieren, indem Sie Folgendes in Ihrem Code entfernen oder auskommentieren:

# echo "Date : $date"
# echo "HoursStart : $hoursStart"
# echo "HoursStop : $hoursStop"
# echo "From : $from"
# echo "Name : $name"
# echo "To : $to"
# echo "Channel : $channel"

Fazit

In diesem Blog haben Sie gelernt, wie Sie Twilio CLI und ein Bash-Skript verwenden können, um den Versand von Benachrichtigungen an Kunden, Mitarbeiter oder Studenten zu automatisieren.

Hinweis: Es ist wichtig, die richtigen Sicherheits- und HIPAA-Compliance-Maßnahmen zu beachten, wenn Sie Twilio Programmable Messaging, Voice und E-Mail verwenden, um Patienten über ihren individuellen Gesundheitszustand/-symptome zu informieren. Kontaktieren Sie Twilio, wenn Sie Fragen haben.

Wenn Ihre Organisation weitere Unterstützung bei der Entwicklung von Lösungen oder eine Partnerschaft bei der Bekämpfung des COVID-Ausbruchs wünscht, stehen wir Ihnen gerne zur Verfügung. Füllen Sie das Formular auf dieser Seite aus.

Mögliche Verbesserungen

Hier sind ein paar Vorschläge, wie Sie das, was wir gerade aufgebaut haben, erweitern können:

  • Senden Sie Benachrichtigungen über Twilio APIs.
  • Verbessern Sie das Skript, um 2 Dateien zu laden, eine für statische Felder (date, hoursStart, hoursStop, from) und eine weitere für diejenigen, die pro Kunde oder Mitarbeiter variieren (name, to).
  • Verwenden Sie TwiML-Bins, um die Erfahrung zu verbessern, indem Sie einfach eine einfache Antwort hinzufügen, falls jemand auf Ihre Nachricht antwortet.
  • Fügen Sie mit Twilio Studio ein Conversational IVR hinzu.

Kontaktieren Sie uns für Sie weitere Informationen und sprechen Sie mit einem Experten.

Der englische Original-Post https://www.twilio.com/blog/create-simple-notification-system-twilio-cli-programmable-voice-messaging-email wurde von auekermann [at] twilio.com übersetzt.

Zusätzliche Ressourcen

Die folgenden Artikel bieten Ihnen ausführliche Informationen zu einigen der in diesem Beitrag erwähnten Themen (auf Englisch):