Wie man eine SMS in Delphi plant
Der einfachste Weg, SMS von Delphi aus zu versenden, ist die Verwendung der integrierten HTTP/Rest-SMS-API des Ozeki SMS Gateways. Wenn Sie diese API verwenden, senden Sie SMS-Nachrichten, indem Sie eine HTTP-Post-Anfrage an das SMS-Gateway stellen. Die HTTP-Post-Anfrage wird eine Nachricht im JSON-Format enthalten. Das SMS-Gateway sendet diese SMS an die Empfängertelefonnummer und gibt eine HTTP-200-OK-Antwort auf Ihre Anfrage zurück.
Delphi-Code zum Senden einer SMS an ein Mobiltelefon
Das folgende Delphi-SMS-Codebeispiel zeigt, wie Sie SMS mit der HTTP-Rest-SMS-API des Ozeki SMS Gateways unter Verwendung der Delphi-Ozeki.Libs.Rest-Unit senden können. Diese Unit wird Ihnen kostenlos zur Verfügung gestellt und Sie können sie in Ihren Projekten verwenden und modifizieren.
SendScheduledSms.delphiprogram SendScheduledSms; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, Ozeki.Libs.Rest in 'Ozeki.Libs.Rest.pas'; var configuration : Ozeki.Libs.Rest.Configuration; var msg : Ozeki.Libs.Rest.Message; var api : Ozeki.Libs.Rest.MessageApi; var result : MessageSendResult; var read : string; begin try configuration := Ozeki.Libs.Rest.Configuration.Create; configuration.Username := 'http_user'; configuration.Password := 'qwe123'; configuration.ApiUrl := 'http://127.0.0.1:9509/api'; msg := Ozeki.Libs.Rest.Message.Create; msg.ToAddress := '+36201111111'; msg.Text := 'Hello world!'; msg.TimeToSend := StrToDateTime('7/27/21 4:00:00 PM'); api := Ozeki.Libs.Rest.MessageApi.Create(configuration); result := api.SendMessage( msg ); Writeln(result.ToString()); Readln(read); except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end.
Wie man das Delphi-SMS-Beispiel verwendet:
Dieses Delphi-SMS-Beispiel kann in jeder Delphi-Anwendung verwendet werden. Um es zu verwenden, müssen Sie die Ozeki.Libs.Rest.pas-Unit zu Ihrem Projekt hinzufügen. Nachdem die Unit hinzugefügt wurde, müssen Sie die uses Ozeki.Libs.Rest in 'Ozeki.Libs.Rest.pas';-Direktive in den Kopfbereich Ihres Delphi-Quellcodes einfügen. Dies ermöglicht Ihnen die Verwendung der Klassen, die von der Ozeki.Libs.Rest-Unit bereitgestellt werden. Sie können die Message-Klasse verwenden, um die SMS zu erstellen. Sie können die MessageApi-Klasse verwenden, um die SMS an das SMS-Gateway zu senden. Das SMS-Gateway leitet Ihre Nachricht entweder über eine drahtlose Verbindung oder über das Internet an das Mobilfunknetz weiter.
SendScheduledSms.delphi herunterladen
Der in diesem Artikel erklärte Quellcode kann kostenlos heruntergeladen, verwendet und modifiziert werden.
Download: SendScheduledSms.delphi.zip (12.4Kb)
Was befindet sich in der SendScheduledSms.delphi.zip-Datei?
Die SendScheduledSms.delphi.zip-Datei enthält die Ozeki.Libs.Rest-Unit, die Ihnen alle notwendigen Tools zum Senden und Empfangen von SMS-Nachrichten bietet. Sie finden auch das SendScheduledSms-Projekt in der Zip-Datei, das den Beispielcode enthält, der Ihnen zeigt, wie Sie eine SMS senden können. Dieser Beispielcode ist unten aufgeführt.
Wie man SMS von Delphi aus sendet (Einfache Anleitung)
Um SMS von Delphi aus zu senden:
- Installieren Sie einen HTTP-API-Benutzer
- Aktivieren Sie "Log communication events" auf der Registerkarte "Advanced"
- Richten Sie Embarcadero Delphi Studio ein
- Laden Sie die SendScheduledSms.delphi.zip-Datei herunter und entpacken Sie sie
- Öffnen Sie die SendScheduledSms.dproj-Datei in Delphi Studio durch Doppelklick
- Starten Sie die Ozeki SMS Gateway App
- Führen Sie den SendScheduledSms.dpr-Delphi-Code in Delphi Studio aus
- Überprüfen Sie die Protokolle, um zu sehen, ob die SMS gesendet wurde
Ozeki SMS Gateway installieren und einen HTTP-API-Benutzer erstellen
Um SMS von Delphi aus senden zu können, müssen Sie zunächst Ozeki SMS Gateway installieren. Das SMS-Gateway kann auf demselben Computer installiert werden, auf dem Sie Ihren Delphi-Code in Visual Studio entwickeln. Nach der Installation ist der nächste Schritt, Ozeki SMS Gateway mit dem Mobilfunknetz zu verbinden. Sie können eine Test-SMS von der Ozeki-GUI senden, um zu überprüfen, ob Ihre Mobilfunknetzverbindung funktioniert. Der letzte Schritt zur Vorbereitung Ihrer Umgebung ist die Erstellung eines HTTP-SMS-API-Benutzerkontos. Erstellen Sie einen Benutzer mit dem Benutzernamen "http_user" und dem Passwort "qwe123", damit das Beispiel ohne Änderungen funktioniert.
Nachdem die Umgebung eingerichtet ist, können Sie Ihren Delphi-Code ausführen.
HTTP-API-URL zum Senden von SMS von Delphi aus
Um SMS von Delphi aus zu senden, muss Ihre Delphi-Anwendung eine HTTP-Anfrage an das SMS-Gateway stellen. Die API-URL wird unten angezeigt. Beachten Sie, dass die IP-Adresse (127.0.0.1) durch die IP-Adresse Ihres SMS-Gateways ersetzt werden sollte. Wenn Ozeki SMS Gateway auf demselben Computer installiert ist, auf dem die Delphi-SMS-Anwendung läuft, kann dies 127.0.0.1 sein. Wenn es auf einem anderen Computer installiert ist, sollte es die IP-Adresse dieses Computers sein.
http://127.0.0.1:9509/api?action=rest
HTTP-Authentifizierung zum Senden von SMS aus Delphi
Um den Delphi-SMS-Client zu authentifizieren, müssen Sie den Benutzernamen und das Passwort in einer base64-kodierten Zeichenkette an den Server in einer HTTP-Anfrage senden. Das verwendete Format lautet: base64(Benutzername+":"+Passwort). In Delphi können Sie den folgenden Code verwenden, um diese Kodierung durchzuführen:
var usernamePassword := username + ':' + password; var Encoder := TBase64Encoding.Create(); var usernamePasswordEncoded := Encoder.Encode(usernamePassword); result := Format('Basic %s', [usernamePasswordEncoded]);
Wenn Sie beispielsweise den Benutzernamen 'http_user' und das Passwort 'qwe123' kodieren, erhalten Sie die folgende base64-kodierte Zeichenkette: aHR0cF91c2VyOnF3ZTEyMw==. Zum Senden
HTTP-Anfrageheader zum Senden von SMS aus Delphi
Um die SMS-Nachrichten zu senden, müssen Sie die folgenden Zeilen als Header in die HTTP-Anfrage aufnehmen. Beachten Sie, dass wir einen Content-Type-Header und einen Authorization-Header einfügen.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP-Anfrage zum Senden von SMS aus Delphi
Um die SMS zu übermitteln, sendet Ihre Delphi-Anwendung eine HTTP-Anfrage ähnlich der untenstehenden. Beachten Sie, dass diese Anfrage einen HTTP-Header-Teil und einen HTTP-Body-Teil enthält. Der HTTP-Body ist eine JSON-kodierte Datenzeichenkette. Er enthält die Empfängernummer, den Zeitpunkt zum Senden der SMS und den Text der Nachricht.
POST /api?action=sendmsg HTTP/1.0 Connection: keep-alive Content-Type: application/json Content-Length: 412 Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509 Accept: application/json User-Agent: Mozilla/3.0 (compatible; Indy Library) { "messages": [ { "message_id": "910663ad-85d8-44cc-aad3-8a5da4024148", "from_connection": "", "from_address": "", "from_station": "", "to_connection": "", "to_address": "+36201111111", "to_station": "", "text": "Hallo Welt!", "create_date": "2021-07-27T15:35:39", "valid_until": "2021-08-03T15:35:39", "time_to_send": "2021-07-27T14:00:00", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true } ] }
HTTP-Antwort, die vom Delphi-SMS-Beispiel empfangen wird
Sobald das SMS-Gateway diese Anfrage empfängt, wird es eine HTTP-Antwort generieren. Die HTTP-Antwort enthält einen Statuscode, der angibt, ob die SMS-Übermittlungsanfrage erfolgreich war oder nicht. Sie gibt auch eine JSON-kodierte Struktur zurück, die Ihnen nützliche Details über die Übermittlung der Nachricht liefert.
HTTP/1.1 200 OK Content-Type: application/json; charset=utf8 Last-Modified: Tue, 27 Jul 2021 15:09:55 GMT Server: 10/10.3.123 Microsoft-HTTPAPI/2.0 User-Agent: OZEKI 10.3.123 (myozeki.com) Date: Tue, 27 Jul 2021 13:35:39 GMT Connection: close { "http_code": 200, "response_code": "ERFOLG", "response_msg": "Nachrichten wurden zur Zustellung in die Warteschlange gestellt.", "data": { "total_count": 1, "success_count": 1, "failed_count": 0, "messages": [ { "message_id": "910663ad-85d8-44cc-aad3-8a5da4024148", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hallo Welt!", "create_date": "2021-07-27 15:35:39", "valid_until": "2021-08-03 15:35:39", "time_to_send": "2021-07-27 14:00:00", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Typ", "value": "SMS:TEXT" } ], "status": "ERFOLG" } ] } }
Wie man SMS aus Delphi mit der Delphi-SMS-API sendet (Video-Tutorial)
Dieses Video zeigt Ihnen, wie Sie die Datei SendScheduledSms.delphi.zip von dieser Seite herunterladen und wie Sie deren Inhalt in Delphi Studio herunterladen. Wenn Sie das Video ansehen, werden Sie feststellen, dass der Inhalt der SendScheduledSms.delphi-Zip-Datei auf den Windows-Desktop platziert wird. Sie werden auch sehen, dass wir auf die Datei SendScheduledSms.dproj doppelklicken, um das Projekt zu öffnen.
Delphi-SMS-Beispiel: SendScheduledSms.dproj
In dieser Lösung gibt es nur ein Projekt: SendScheduledSms.dproj und zwei Dateien: SendScheduledSms.dpr und Ozeki.Libs.Rest.pas.
Wie man überprüft, ob die SMS vom HTTP-Benutzer akzeptiert wurde
Nachdem die SMS übermittelt wurde, ist es eine gute Idee, Ihr SMS-Gateway zu überprüfen, um zu sehen, was es empfangen hat. Sie können das Protokoll überprüfen, indem Sie die Details des HTTP-Benutzers aus der Ozeki SMS Gateway Management-Konsole öffnen. Das folgende Video zeigt Ihnen, worauf Sie achten müssen.
Zusammenfassend
Dieser Artikel wurde geschrieben, um Ihnen beizubringen, wie Sie geplante SMS von Delphi aus über die HTTP-API des Ozeki SMS Gateways versenden können. Dieses Delphi-SMS-Beispiel kann in jeder Delphi-Anwendung verwendet werden, um sicherzustellen, dass es Ihren Erwartungen entspricht. Es bietet korrekte, gut geschriebene Methodenaufrufe zum Absenden einer SMS und eine gut gestaltete SMS-Klasse, mit der Sie die SMS-Parameter konfigurieren können.
Wenn Sie diesen Artikel hilfreich finden – und ich bin sicher, das tun Sie – hören Sie hier nicht auf, sondern lesen Sie mehr auf der Ozeki-Webseite. Sehen Sie sich das Delphi-Tutorial zum Thema Empfangen einer SMS an.
Nutzen Sie das Gelernte und laden Sie jetzt das Ozeki SMS Gateway herunter!
More information
- Delphi SMS mit der HTTP-REST-API senden (Codebeispiel)
- Delphi mehrere SMS mit der HTTP-REST-API senden (Codebeispiel)
- Delphi SMS mit der HTTP-REST-API planen (Codebeispiel)
- Delphi SMS mit der HTTP-REST-API empfangen (Codebeispiel)
- Delphi SMS mit der HTTP-REST-API löschen (Codebeispiel)
- So laden Sie die neueste Delphi-SMS-API-Einheit von Github herunter