Wie man SMS-Nachrichten mit PHP versendet – Eine Schritt-für-Schritt-Anleitung

Zurück zur Übersicht
Wie man SMS-Nachrichten mit PHP versendet – Eine Schritt-für-Schritt-Anleitung

In diesem Blogbeitrag möchte ich Ihnen zeigen, wie Sie SMS-Nachrichten mit PHP versenden können. 

Bevor wir beginnen, ist es wichtig, dass Sie ein grundlegendes Verständnis von PHP und ein GatewayAPI-Konto mit Kontoguthaben besitzen. 

Sobald Sie ein Konto erstellt und Zugang zu Ihrem Dashboard erhalten haben, können Sie sich die Codebeispiele auf der Startseite des Dashboards ansehen.

Wählen Sie das PHP-Beispiel aus, kopieren Sie es und fügen Sie es in Ihren bevorzugten Editor ein. Persönlich bevorzuge ich Visual Studio Code, aber Sie können jeden beliebigen Editor verwenden.

Nach dem Einfügen des Codes sieht er in etwa so aus:

Schrittweise Erläuterung des Codes

In diesem Abschnitt werde ich Sie Schritt für Schritt durch den Code führen, damit Sie verstehen, was er bewirkt und wie Sie ihn an Ihre individuellen Bedürfnisse anpassen können. Wenn Sie damit vertraut sind, können Sie zu dem Abschnitt übergehen, in dem ich das Skript ausführe.

In der ersten Zeile starten wir unsere PHP-Datei. In der dritten Zeile haben wir eine Variable, die die URL zu unserem Endpunkt für den Versand von SMS-Nachrichten enthält. Ändern Sie diese Variable nicht. In der vierten Zeile steht Ihr API-Token, mit dem Sie und Ihr Konto identifiziert werden.

Im Code finden sich auch Angaben zum Inhalt der Nachricht. Wir haben „recipients“ (Empfänger), also die Telefonnummern, an die die Nachricht gesendet werden soll. In unserem Beispiel verwenden wir einige Testnummern, aber Sie können hier bis zu 10.000 verschiedene Empfänger eingeben. 

Geben Sie zunächst Ihre Landesvorwahl ohne vorangestellte Nullen oder Pluszeichen ein. Ich verwende zum Beispiel „45“ für Dänemark. Dann geben Sie Ihre eigene Nummer ein.

In der nächsten Zeile haben wir ein JSON-Objekt, d. h. das Objekt, das Informationen darüber an unseren Server sendet, wie die SMS gesendet werden soll. Erstens haben wir „sender“ (Absender). Dies ist die Sender ID, die auf dem Telefon des Empfängers angezeigt wird. Wenn Sie zum Beispiel eine SMS von Ihrer Bank erhalten, ist der Name der Bank oft der Absender. Im Beispiel steht automatisch „ExampleSMS“, aber Sie können Ihren eigenen Namen oder die gewünschte Sender ID eingeben.

„Message“ ist natürlich der Inhalt der SMS. Im Beispiel schreibe ich einfach „Hello world“. Beachten Sie, dass, wenn Sie Emojis oder Sonderzeichen einfügen möchten, einige zusätzliche Schritte erforderlich sind, über die Sie in unserer Dokumentation mehr Informationen finden können.

In der nächsten Zeile lassen wir „recipients“ leer, weil wir es in der folgenden Zeile ausfüllen werden, in der wir eine „For“-Schleife verwenden, die die einzelnen Empfänger zu unserem Empfänger-Array hinzufügt.

cURL

Jetzt ist unser JSON-Objekt bereit, an den Server gesendet zu werden. Dazu verwenden wir die in PHP integrierte cURL-Bibliothek. Wir beginnen mit der Initialisierung unseres cURL-Objekts mit „curl_init()“ und speichern es in der Variablen „$ch“. Dann legen wir einige Parameter für unser cURL-Objekt mit „curl_setopt()“ fest. Wir geben die URL an, an die die Anfrage gesendet werden soll, setzen den „Content-Type“ auf „application/JSON“, um dem Server mitzuteilen, dass wir ein JSON-Objekt senden, und verwenden unser API-Token als Benutzernamen. Wir verwenden kein Passwort.

Nachdem wir das cURL-Objekt eingerichtet haben, können wir die Anfrage selbst ausführen, indem wir „curl_exec($ch)“ aufrufen. Dadurch wird die HTTPS-Anfrage mit den angegebenen Parametern gesendet und die Antwort des Servers in der Variablen „$result“ gespeichert. Dann schließen wir das cURL-Objekt mit „curl_close($ch)“.

Um die Antwort des Servers zu sehen, drucken wir „$result“ mit „print($result)“ aus. Wenn alles nach Plan gelaufen ist, sehen Sie die Antwort des Servers in Ihrem Output.

Außerdem dekodieren wir das JSON-Objekt, um auf bestimmte Informationen zuzugreifen, indem wir „json_decode($result, true)“ verwenden. Im Beispiel drucken wir die IDs aus dem JSON-Objekt mit „print_r($response[‚ids‘])“. Diese ID kann für Support- oder ähnliche Zwecke als Referenz verwendet werden.

Ausführung des PHP-Skripts

Jetzt ist unser PHP-Skript fertig und wir können es ausführen. Das Skript kann auf jede beliebige Weise ausgeführt werden. Ich ziehe es vor, das Terminal auf meinem PC zu benutzen. 

Navigieren Sie zunächst zu dem Ordner, in dem sich Ihre Datei befindet, und führen Sie dann das Skript aus, indem Sie „php sms.php“ in das Terminal eintippen.

Nachdem das Skript ausgeführt wurde, sollten Sie eine SMS auf Ihrem Mobiltelefon erhalten.

executing-the-PHP-script

Screenshot von meinem Terminal, wo das Skript ausgeführt wurde

Die Antwort, die Sie erhalten, enthält einige wichtige Informationen. Zunächst einmal handelt es sich bei der ID um Ihre „message ID“, also um die Kennung der Nachricht, die Sie gerade gesendet haben. Diese ID kann in unserem System verwendet werden, und Sie können sie auch als Referenz verwenden, wenn Sie Unterstützung benötigen oder die Nachricht zurückverfolgen wollen.

„Usage“ gibt die Anzahl der Nachrichten und die Länder an, in die Sie sie gesendet haben. Zum Beispiel bedeutet „DK: 1“, dass eine Nachricht nach Dänemark gesendet wurde.  Unter „Currency“ wird die verwendete Währung angegeben und unter „Price“ werden die Kosten der Nachricht angezeigt.

Schlussbemerkungen

Abschließend möchte ich Ihnen noch ein paar Dinge mitteilen, die Sie beim Versand von SMS-Nachrichten über eine SMS-API beachten sollten. 

Erstens: Das „sender“-Feld hat einige Einschränkungen. Vermeiden Sie Sonderzeichen oder Symbole, da sonst die Nachricht nicht korrekt gesendet oder die Sender ID überschrieben werden kann.

Außerdem ist die Länge der Sender ID auf 11 Zeichen (alphanumerisch) bzw. 15 Ziffern (numerisch) begrenzt, also halten Sie sie auf oder unter dieser Länge. 

Wenn Sie Links in Ihre Nachrichten einbinden möchten, müssen Sie zunächst den Whitelisting-Prozess in Ihrem GatewayAPI-Profil durchlaufen. Die Freigabe eines Links dauert in der Regel nicht länger als einen Arbeitstag. Vergewissern Sie sich jedoch, dass Sie rechtzeitig vor dem geplanten Versand bereit sind.

Ein letzter Punkt, den Sie beachten sollten, ist, dass die Kodierung Ihrer SMS- oder PHP-Datei auf UTF-8 eingestellt sein muss. Dies ist bei den meisten Systemen die Standardeinstellung, aber bei Windows kann es vorkommen, dass das PHP-Skript auf eine andere Kodierung eingestellt ist. Um Probleme zu vermeiden, müssen Sie sicherstellen, dass beide Dateien in der gleichen Kodierung vorliegen.

Was ich Ihnen heute gezeigt habe, sind nur die grundlegenden Schritte zum Versenden einer SMS-Nachricht. GatewayAPI hat noch viel mehr zu bieten und Sie können mehr darüber in unserer Dokumentation lesen.

Sie können auch unseren YouTube-Kanal besuchen, wo wir Ihnen zeigen, wie Sie Nachrichten über PHP auf genau dieselbe Weise wie in diesem Blogbeitrag versenden können.

Darüber hinaus finden Sie auf GitHub eine vollständige PHP-Bibliothek für die Integration mit GatewayAPI.

 

Vielen Dank fürs Lesen!

about_the_author_OG-june_2023-DE-1200x628px@2x

Über den Autor

Oliver Glozmann Bork Hansen ist auf Integrationen spezialisiert. Wenden Sie sich an ihn, wenn Sie eine Integration mit Ihrem Lieblingssystem wünschen. Wenn Oliver nicht an GatewayAPI arbeitet, befasst er sich leidenschaftlich mit KI und Deep Learning. Oliver Glozmann Bork Hansen arbeitet generell gerne mit Code, egal ob es sich um KI oder um etwas Bodenständigeres handelt, wie GUI oder Backend-Software.