Wie man SMS von F# sendet
Der einfachste Weg, SMS von F# zu senden, ist die Verwendung der integrierten HTTP/Rest-SMS-API von Ozeki SMS Gateway. 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.
F# SMS-Sendecode-Beispiel
Program.fsopen System open Ozeki.Libs.Rest [] let main argv = let configuration = new Configuration ( Username = "http_user", Password = "qwe123", ApiUrl = "http://127.0.0.1:9509/api") let msg = new Message( ToAddress = "+36201111111", Text = "Hallo, Welt!") let api = new MessageApi(configuration) let result = api.Send(msg) printfn $"{result.ToString()}" 0
SendSms.fs herunterladen
Der in diesem Artikel erklärte Quellcode kann kostenlos heruntergeladen, verwendet und modifiziert werden.
Download: SendSms.fs.zip (59,4Kb)
Was ist in der SendSms.fs.zip-Datei?
Die SendSms.fs.zip-Datei enthält die Ozeki.Libs.Rest-Bibliothek, die Ihnen alle notwendigen Werkzeuge zum Senden und Empfangen von SMS-Nachrichten bietet. Sie finden auch das SendSms-Projekt in der Zip-Datei, das den Beispielcode enthält, der zeigt, wie Sie eine SMS senden können. Dieser Beispielcode ist unten aufgeführt.
Wie man SMS von F# sendet (Schnelle Schritte)
Um SMS von F# zu senden:
- Installieren Sie Ozeki SMS Gateway
- Verbinden Sie Ozeki SMS Gateway mit dem Mobilfunknetz
- Senden Sie eine Test-SMS von der Ozeki GUI
- Erstellen Sie einen HTTP-SMS-API-Benutzer
- Starten Sie Visual Studio
- Erstellen Sie eine Lösung namens SendSms.sln
- Fügen Sie ein F#-Konsolenprojekt hinzu: SendSms.fsproj
- Fügen Sie den Code in Program.fs oder SendSms.fs ein
- Lesen Sie die HTTP-Antwort
- Überprüfen Sie die Protokolle im SMS-Gateway
Wie Sie Ihr erstes F#-Programm schreiben (Schnelle Befehle)
Um Ihr erstes F#-Programm zu schreiben:
- Richten Sie Visual Studio ein
- Laden Sie die SendSms.fs.zip-Datei herunter
- Extrahieren Sie die .zip-Datei aus dem Downloads-Ordner
- Öffnen Sie die SendSms.sln-Datei in Visual Studio
- Starten Sie die Ozeki SMS Gateway-Anwendung
- Klicken Sie auf HTTP-Benutzer im Tab "Benutzer und Anwendungen"
- Führen Sie SendSMS.fs in Visual Studio aus
- Überprüfen Sie den "Gesendet"-Ordner in Ozeki SMS Gateway
- Wählen Sie SMPP-Client-Verbindung auf der Startseite
- Aktivieren Sie alle Log-Level-Checkboxen im "Erweitert"-Tab des Konfigurationsmenüs
- Führen Sie Program.fs erneut in Visual Studio aus
- Suchen Sie das Ereignis, wenn der Empfänger Ihre Nachricht erhalten hat
Installieren Sie Ozeki SMS Gateway und erstellen Sie einen HTTP-API-Benutzer
Um SMS von F# senden zu können, müssen Sie zuerst Ozeki SMS Gateway installieren. Das SMS-Gateway kann auf demselben Computer installiert werden, auf dem Sie Ihren F#-Code in Visual Studio entwickeln. Nach der Installation ist der nächste Schritt, Ozeki SMS Gateway mit dem Mobilfunknetz zu verbinden. Sie können 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 F#-Code ausführen.
HTTP-API-URL zum Senden von SMS von F#
Um SMS von F# zu senden, muss Ihre F#-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 F#-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 von F#
Um den F#-SMS-Client zu authentifizieren, müssen Sie den Benutzernamen und das Passwort in einem base64-kodierten String an den Server in einer HTTP-Anfrage senden. Das verwendete Format ist: base64(Benutzername+":"+Passwort). In C# können Sie den folgenden Code verwenden, um diese Kodierung durchzuführen:
var encoding = Encoding.GetEncoding("iso-8859-1"); var usernamePassword = username + ":" + password; var usernamePasswordEncoded = Convert.ToBase64String(encoding.GetBytes(usernamePassword));
Wenn Sie beispielsweise den Benutzernamen 'http_user' und das Passwort 'qwe123' kodieren, erhalten Sie den folgenden base64-kodierten String: aHR0cF91c2VyOnF3ZTEyMw==. Zum Senden
HTTP-Anfrageheader zum Senden von SMS von F#
Um die SMS-Nachrichten zu senden, müssen Sie die folgenden Zeilen als Header in die HTTP-Anfrage einfügen. Beachten Sie, dass wir einen Content-Type- und einen Authorization-Header einfügen.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP-Anfrage zum Senden von SMS aus F#
Um die SMS zu übermitteln, sendet Ihre F#-Anwendung eine HTTP-Anfrage ähnlich der unten gezeigten. Beachten Sie, dass diese Anfrage einen HTTP-Header-Teil und einen HTTP-Body-Teil enthält. Der HTTP-Body ist ein JSON-kodierter Datenstring. Er enthält die Nummer des Empfängers und den Text der Nachricht.
POST /api?action=sendmsg HTTP/1.1 Connection: Keep-Alive Content-Length: 336 Content-Type: application/json Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9511 { "messages": [ { "message_id": "9380ab2d-a185-4cc1-abad-c18ec459e40f", "to_address": "+36201111111", "text": "Hello, World!", "create_date": "2021-06-11 13:45:30", "valid_until": "2021-06-18 13:45:30", "time_to_send": "2021-06-11 13:45:30", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] } ] }
HTTP-Antwort, die vom F#-SMS-Beispiel empfangen wurde
Sobald das SMS-Gateway diese Anfrage empfängt, wird es eine HTTP-Antwort generieren. Die HTTP-Antwort enthält einen Statuscode, der anzeigt, ob die SMS-Übermittlungsanfrage erfolgreich war oder nicht. Sie wird auch eine JSON-kodierte Struktur zurückgeben, die Ihnen nützliche Details über die Übermittlung der Nachricht liefert.
HTTP/1.1 200 OK User-Agent: OZEKI 10.3.116 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Fri, 11 Jun 2021 13:06:37 GMT Server: 10/10.3.116 Transfer-Encoding: chunked { "http_code": 200, "response_code": "SUCCESS", "response_msg": "Nachrichten wurden zur Zustellung in die Warteschlange gestellt.", "data": { "total_count": 1, "success_count": 1, "failed_count": 0, "messages": [ { "message_id": "9380ab2d-a185-4cc1-abad-c18ec459e40f", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello, World!", "create_date": "2021-06-11 13:45:30", "valid_until": "2021-06-18 13:45:30", "time_to_send": "2021-06-11 13:45:30", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
Wie man SMS aus F# sendet (Video-Tutorial)
Dieses Video zeigt Ihnen, wie Sie ein neues .Net Core-Konsolenprojekt in Visual Studio erstellen und es in SendSms.sln umbenennen. Sobald die Lösung erstellt ist, werden Sie feststellen, dass ein SendSms.fsproj zur Lösung hinzugefügt wurde und standardmäßig die Datei Program.cs geöffnet ist. Sie können die Program.fs in SendSms.fs umbenennen, wenn Sie möchten. Sie werden auch im Video sehen, wie der Beispielcode unten in die Program.fs-Datei kopiert werden kann und wie er kompiliert und ausgeführt wird.
SendSms.sln
Der untenstehende Beispielcode ist Teil der SendSms.sln Visual Studio-Lösung. Eine Visual- Studio-Lösung kann mehrere Projekte und mehrere Dateien enthalten. In dieser Lösung gibt es nur zwei Projekte: SendSms.fsproj, Ozeki.Libs.Rest.csproj und eine Datei: Program.fs.
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 in der Ozeki SMS Gateway-Verwaltungskonsole öffnen. Das folgende Video zeigt Ihnen, worauf Sie achten müssen.
Wie man überprüft, ob die SMS an das Mobilfunknetz gesendet wurde
Der letzte Schritt zur Überprüfung des Verfahrens besteht darin, die Protokolle der Mobilfunknetzverbindung zu überprüfen. Möglicherweise müssen Sie die Protokollierung in der Konfiguration der Verbindung aktivieren, bevor Sie die Nachricht senden, um die Protokolle zu sehen. Wenn die Protokollierung aktiviert ist, sehen Sie die Telefonnummer und den Text der Nachricht, die Sie gesendet haben.
Ausführen des F#-SMS-Beispiels unter Windows
Wenn Sie Windows verwenden, um dieses in F# geschriebene SMS-Beispiel auszuführen, werden Sie feststellen, dass Sie eine etwas bessere Leistung erhalten als unter Linux. Um zu verstehen, warum dies geschieht, müssen Sie bedenken, dass F# das .NET-Framework für die Codeausführung verwendet. Dies liegt daran, dass die .NET-Implementierung unter Windows für Leistung optimiert ist, während mono, die .NET-Implementierung unter Linux, in diesem Bereich noch einiges aufzuholen hat.
Fazit
Der obige Artikel hat die Schritte zum Versenden von SMS in F# gezeigt. Mit der gegebenen Anleitung ist das Nachrichtenversenden mit F# und Ozeki SMS Gateway schnell und einfach. Ozeki SMS Gateway bietet hervorragende Protokollierungsfunktionen, sodass Fehler leicht nachverfolgt werden können. Sie oder Ihre Organisation können mit dieser Lösung Kunden schnell erreichen, und wie gezeigt wurde, ist es nicht notwendig, ein Experte in F# zu sein.
Um weiter zu lernen, besuchen Sie die Tutorial-Seite von Ozeki, wo Sie weitere Informationen zum Arbeiten mit F# finden, wie zum Beispiel SMS-Planung.
Jetzt müssen Sie nur noch Ozeki SMS Gateway herunterladen und die Arbeit kann beginnen!
More information