Erstellen eines SMS-Portals mit Laravel und Twilio
Lesezeit: 6 Minuten
An einem bestimmten Punkt in Ihrem Anwendungsworkflow müssen Sie möglicherweise wichtige Informationen an Ihre Nutzer:innen weitergeben. Dank des Fortschritts bei Webtechnologien ist dies mit Push-Benachrichtigungen ganz einfach möglich. Für die meisten dieser Dienste ist jedoch eine Internetverbindung erforderlich. Das ist leider nicht immer der Fall. Mit einem Benachrichtigungssystem, das nicht auf das Internet angewiesen ist, können Sie dieses Problem zum Glück lösen.
In diesem Tutorial zeigen wir Ihnen, wie Sie mit Programmable SMS von Twilio ein SMS-Benachrichtigungsportal mit Laravel erstellen. Damit können Sie Ihre Nutzer:innen dann über ein Dashboard per SMS benachrichtigen.
Voraussetzungen
Für dieses Tutorial benötigen Sie Folgendes:
- Grundkenntnisse in Laravel
- Laravel auf Ihrem lokalen Rechner
- Composer global installiert
- MySQL auf Ihrem lokalen Rechner
- Twilio-Konto
Projekt einrichten
Zunächst müssen Sie ein neues Laravel-Projekt erstellen, entweder mit dem Laravel-Installationsprogramm oder mit Composer. In diesem Tutorial werden wir das Laravel-Installationsprogramm verwenden. Wenn Sie es noch nicht installiert haben, finden Sie in der Dokumentation von Laravel eine Anleitung. Um ein neues Laravel-Projekt zu erstellen, führen Sie diesen Befehl in Ihrem Terminal aus:
Nun ändern Sie Ihr Arbeitsverzeichnis zu sms-portal
und installieren das Twilio-SDK über Composer:
Sofern erforderlich, können Sie Composer gemäß den Anweisungen hier installieren.
Nach der Installation des Twilio PHP-SDK müssen Sie Ihre Twilio-Anmeldeinformationen aus dem Twilio-Dashboard abrufen. Gehen Sie zum Dashboard und kopieren Sie dort Ihre account_sid
und das auth_token
.
Navigieren Sie jetzt zum Bereich Phone Number (Telefonnummer), um Ihre SMS-fähige Telefonnummer zu erhalten.
Anschließend müssen Sie die Datei .env
mit Ihren Twilio-Anmeldeinformationen aktualisieren. Öffnen Sie also die Datei .env
, die sich im Stammverzeichnis des Projekts befindet, und fügen Sie diese Werte hinzu:
Datenbank einrichten
Sie haben jetzt ein einfaches Laravel-Projekt mit installiertem Twilio-SDK. Erstellen Sie als Nächstes die Datenbank. Wenn Sie eine grafische Benutzeroberfläche (GUI) wie phpMyAdmin zum Verwalten Ihrer Datenbank verwenden, können Sie direkt mit der Erstellung einer Datenbank namens sms_portal
fortfahren und diesen Abschnitt überspringen. Wenn Sie kein solches Tool haben und MySQL nicht installiert ist, installieren Sie MySQL von der offiziellen Website für Ihr Betriebssystem.
Öffnen Sie das Terminal und führen Sie diesen Befehl aus, um sich bei MySQL anzumelden:
HINWEIS: Fügen Sie das Flag -p
hinzu, wenn Sie ein Kennwort für Ihre MySQL-Instanz haben.
Nachdem Sie sich angemeldet haben, führen Sie den folgenden Befehl aus, um eine neue Datenbank zu erstellen:
Ändern Sie nun die Datenbankkonfiguration entsprechend in der Datei .env
im Stammverzeichnis Ihres Projekts.
Migration erstellen
Nachdem Sie die Datenbank erstellt haben, können Sie die Datenbankmigration erstellen. Dazu müssen Sie einfach diesen Befehl im Terminal ausführen:
Dadurch wird eine Migrationsdatei {current_time_stamp}_create_users_phone_number_table
im Verzeichnis /database/migrations
generiert.
Öffnen Sie nun den Projektordner in Ihrer bevorzugten IDE oder Ihrem Texteditor, damit Sie die gewünschten Änderungen vornehmen können. Öffnen Sie die eben erstellte Migrationsdatei. Der Inhalt sollte in etwa so aussehen:
Sie müssen die Spalte phone_number
zur Tabelle hinzufügen. Dazu können Sie die Methode up()
wie folgt bearbeiten:
Die Migrationsdatei kann jetzt migriert werden. Führen Sie dafür folgenden Befehl im Terminal aus:
Die Ausgabe sollte in etwa so aussehen:
Benutzeroberfläche erstellen
Das Projekt ist jetzt eingerichtet. Der nächste Schritt ist die Entwicklung einer einfachen Benutzeroberfläche, mit der Sie Daten zu Ihrer Datenbank hinzufügen und SMS-Benachrichtigungen senden können.
Öffnen Sie /resources/views/welcome.blade.php
und nehmen Sie die folgenden Änderungen am Abschnitt <head>
vor.
Sie haben jetzt den ursprünglichen Stil der Seite entfernt und Bootstrap mit BootstrapCDN hinzugefügt, um das Design zu vereinfachen. Als Nächstes erstellen Sie zwei Formulare auf der Seite. Eines für die Registrierung der Telefonnummer der Nutzer:innen und ein weiteres zum Senden nutzerdefinierter Benachrichtigungen an ausgewählte Personen. Nehmen Sie folgende Änderungen am Abschnitt body
vor.
Wenn Sie sich den obigen Code genauer ansehen, werden Sie Folgendes feststellen:
Mit diesem Ausschnitt können Sie ein Optionsfeld für jede verfügbare Telefonnummer generieren, die in dieser Ansicht zurückgegeben wird. Sie werden diese Funktion in Kürze hinzufügen.
Telefonnummer von Nutzer:innen speichern
Zunächst erstellen Sie ein Modell, das Sie zur Abfrage und zum Einfügen von Datensätzen in die Datenbank verwenden werden. Öffnen Sie Ihr Terminal im Projektverzeichnis und führen Sie Folgendes aus:
Öffnen Sie die erstellte Datei unter app/UsersPhoneNumber.php
und fügen Sie den folgenden Code hinzu:
HINWEIS: Beachten Sie folgende Punkte:
- Durch Hinzufügen von
protected $table= "users_phone_number";
wird Eloquent der zu verwendende Tabellennamen mitgeteilt. Fehlt diese Angabe, wird der Pluralname der Klasse als Tabellenname verwendet. - Durch Hinzufügen von
protected $fillable
wird Eloquent angewiesen, die Massenzuweisung des Feldes einzurichten (siehe Link oben).
Als Nächstes müssen Sie den Controller erstellen, in dem Sie die für jede Anfrageroute benötigte Logik implementieren werden. Öffnen Sie erneut das Terminal und führen Sie Folgendes aus:
Dadurch wird eine Controller-Datei unter app/Http/Controllers/HomeController.php
mit folgendem Inhalt erstellt:
Methode zum Speichern der Telefonnummer erstellen
Erstellen Sie eine Funktion, die ein neues UsersPhoneNumber
-Modell mit den Daten aus dem Anfragetext instanziiert:
Im obigen Code wird eine Validierung für die Daten durchgeführt, die vom Text $request
übergeben wurden, bevor eine neue Instanz von UsersPhoneNumber
erstellt wird. Nach dem Speichern der Telefonnummer werden Sie wieder auf die Willkommensseite geleitet, wobei eine Erfolgsmeldung per flash an die Sitzung übergeben wird.
Ansicht mit Telefonnummern zurückgeben
Nun müssen Sie die Ansicht mit den Daten der registrierten Telefonnummern zurückgeben. Schreiben Sie eine einfache Funktion in den HomeController, mit der die Tabelle users_phone_number
abgefragt wird und die Ergebnisse an die Ansicht zurückgegeben werden:
HINWEIS: compact() ist eine PHP-Funktion, mit der Sie ein Array mit Variablennamen und deren Werten erstellen können.
Nachrichten mit Twilio Programmable SMS senden
Im nächsten Schritt implementieren Sie den SMS-Versand mit der Bibliothek von Twilio Programmable SMS. Erstellen Sie eine private Funktion im HomeController, die als Hilfsfunktion für das Senden von Nachrichten dient:
Die Funktion empfängt zwei Parameter: $message
und $recipients
. Dann werden die gespeicherten Twilio-Anmeldeinformationen aus den Umgebungsvariablen mit der integrierten PHP-Funktion getenv()
abgerufen und es wird ein neuer Twilio Client mit den Anmeldeinformationen instanziiert. Jetzt können Sie die SMS mit folgendem Aufruf senden:
Die Twilio-Funktion messages->create()
nimmt zwei Parameter entgegen: den Nachrichtenempfänger und ein Array mit den Eigenschaften from
und body
, wobei from
Ihre aktive Twilio-Telefonnummer ist.
Benutzerbenachrichtigung bei Registrierung senden
Sie haben bislang die Funktion sendMessage()
fertiggestellt, mit der Sie Nachrichten an Nutzer:innen senden werden. Jetzt aktualisieren Sie die Funktion storePhoneNumber()
, um Benachrichtigungen über eine erfolgreiche Registrierung zu senden. Dazu müssen Sie die Funktion storePhoneNumber()
wie folgt ändern:
Hervorragend. Wenn jetzt eine Telefonnummer zu Ihrer Datenbank hinzugefügt wird, können Sie eine entsprechende Benachrichtigung an Nutzer:innen senden.
Nutzerdefinierte Nachrichten senden
Als Nächstes schreiben Sie eine Funktion zum Senden nutzerdefinierter Nachrichten an ausgewählte Personen. Fügen Sie den folgenden Code zum HomeController
hinzu:
Diese Funktion übergibt die validierten Daten aus dem Text von $request
an die Variable $validatedData
. So können Sie das Array $validatedData[users]
durchlaufen und die von $validatedData["body"]
erhaltene Nachricht an Nutzer:innen senden. Danach kehren Sie zur Begrüßungsseite zurück und erhalten eine Nachricht, die an die Sitzung gesendet wird.
Routen erstellen
Sie haben die Controller-Funktionen erfolgreich erstellt. Jetzt fügen Sie der Anwendung Routen hinzu. Öffnen Sie routes/web.php
und nehmen Sie die folgenden Änderungen vor:
Formularfeld mit Routen aktualisieren
Gehen Sie nun zu resources/views/welcome.blade.php
und nehmen Sie die folgenden Änderungen am Formularfeld vor:
und
Code testen
Führen Sie den gesamten Code, den Sie bisher erstellt haben, zusammen. Jetzt sollte Ihre HomeController.php
wie folgt aussehen:
Und für die Ansicht sollte Ihre welcome.blade.php
wie folgt aussehen:
Wenn Ihr Code derselbe ist, können Sie fortfahren. Wenn nicht, überprüfen Sie, was fehlt.
Anwendung ausführen
Öffnen Sie Ihr Terminal, navigieren Sie zum Projektverzeichnis und führen Sie den folgenden Befehl aus:
Dadurch wird Ihre Laravel-Anwendung auf einem localhost-Port, normalerweise 8000
, bereitgestellt. Öffnen Sie den nach der Ausführung des Befehls ausgedruckten localhost-Link in Ihrem Browser. Sie sollten eine Seite wie diese sehen:
Registrieren Sie eine neue Telefonnummer. Sie sollten dann in Kürze eine SMS erhalten, die Sie über Ihre Registrierung informiert.
Sie können auch das Senden von nutzerdefinierten Benachrichtigungen testen. Wählen Sie dazu eine Person aus dem Auswahlfeld aus und geben Sie den Text, der an die diese Person gesendet werden soll, in das Textfeld ein. Klicken Sie dann auf die Schaltfläche „Send Notification“ (Benachrichtigung senden) und Sie sollten eine SMS mit der nutzerdefinierten Benachrichtigung erhalten.
Fazit
Nach Abschluss dieses Tutorials sollten Sie Twilio Programmable SMS in Ihre Laravel-Anwendung integrieren und Benachrichtigungen per SMS senden können. Den vollständigen Quellcode für dieses Tutorial finden Sie auf Github.
Ein nächster Schritt könnte darin bestehen, dass Nutzer:innen nach erhaltener SMS-Benachrichtigung eine Aktion ausführen können.
Wenn Sie Fragen zu diesem Tutorial haben, helfe ich Ihnen gerne weiter. Sie erreichen mich wie folgt:
- E-Mail: brian.iyoha@gmail.com
- X (ehemals Twitter): thecodearcher
- GitHub: thecodearcher
Verwandte Posts
Ähnliche Ressourcen
Twilio Docs
Von APIs über SDKs bis hin zu Beispiel-Apps
API-Referenzdokumentation, SDKs, Hilfsbibliotheken, Schnellstarts und Tutorials für Ihre Sprache und Plattform.
Ressourcen-Center
Die neuesten E-Books, Branchenberichte und Webinare
Lernen Sie von Customer-Engagement-Experten, um Ihre eigene Kommunikation zu verbessern.
Ahoy
Twilios Entwickler-Community-Hub
Best Practices, Codebeispiele und Inspiration zum Aufbau von Kommunikations- und digitalen Interaktionserlebnissen.