Jak naplánovat SMS ve F#
Nejjednodušší způsob, jak odesílat SMS z F#, je použít vestavěné HTTP/Rest SMS API Ozeki SMS Gateway. Při použití tohoto API budete odesílat SMS zprávy pomocí HTTP Post požadavku na SMS bránu. HTTP Post požadavek bude obsahovat zprávu ve formátu JSON. SMS brána odešle tuto SMS příjemci a vrátí HTTP 200 OK odpověď na váš požadavek.

F# kód pro odeslání naplánované SMS na mobil
Následující ukázka kódu F# demonstruje, jak můžete odesílat SMS pomocí HTTP REST SMS API Ozeki SMS Gateway s využitím knihovny Ozeki.Libs.Rest pro F#. Tato knihovna je poskytována zdarma a můžete ji používat a upravovat v jakémkoli svém projektu.
Program.fs1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
open System open Ozeki.Libs.Rest [<EntryPoint>] let main argv = let configuration = new Configuration ( Username = "http_user" , Password = "qwe123" , let msg = new Message( ToAddress = "+36201111111" , Text = "Hello, World!" , TimeToSend = DateTime.Parse( "2021-06-07 11:44:00" )) let api = new MessageApi(configuration) let result = api.Send(msg) printfn $ "{result.ToString()}" 0 |
Jak použít příklad F# SMS:
Tento příklad F# SMS lze použít v jakékoli aplikaci .NET nebo .NET core. Pro použití je nutné přidat odkaz na knihovnu Ozeki.Libs.Rest do vašeho projektu. Po přidání odkazu na projekt musíte vložit direktivu using Ozeki.Libs.Rest; do hlavičky vašeho F# zdrojového kódu. To vám umožní používat třídy poskytované knihovnou Ozeki.Libs.Rest. Třídu Message můžete použít k vytvoření SMS. Třídu MessageApi můžete použít k odeslání SMS na SMS bránu. SMS brána přepošle vaši zprávu do mobilní sítě buď prostřednictvím bezdrátového připojení nebo přes Internet.
Stáhnout SendScheduledSms.fs
Zdrojový kód vysvětlený v tomto článku lze stáhnout, použít a upravit zdarma.
Stáhnout: SendScheduledSms.fs.zip (59.8Kb)
Co obsahuje soubor SendScheduledSms.fs?
Soubor SendScheduledSms.fs obsahuje knihovnu Ozeki.Libs.Rest, která vám poskytuje všechny nástroje potřebné k odesílání a přijímání SMS zpráv. V zipu také najdete projekt SendScheduledSms, který obsahuje ukázkový kód, který vám ukáže, jak odeslat SMS. Tento ukázkový kód je uveden níže.

Jak odeslat SMS z F# (Rychlé kroky)
Pro odeslání SMS z F#:
- Nainstalujte Ozeki SMS Gateway
- Připojte Ozeki SMS Gateway k mobilní síti
- Odešlete testovací SMS z Ozeki GUI
- Vytvořte HTTP SMS API uživatele
- Spusťte Visual Studio
- Vytvořte řešení s názvem SendScheduledSms.sln
- Přidejte F# konzolový projekt: SendScheduledSms.fsproj
- Vložte kód do Program.fs nebo SendScheduledSms.fs
- Přečtěte si HTTP odpověď
- Zkontrolujte logy v SMS bráně
Instalace Ozeki SMS Gateway a vytvoření HTTP API uživatele
Abyste mohli odesílat SMS z F#, musíte nejprve nainstalovat Ozeki SMS Gateway. SMS bránu lze nainstalovat na stejný počítač, kde vyvíjíte svůj F# kód ve Visual Studiu. Po instalaci je dalším krokem připojení Ozeki SMS Gateway k mobilní síti. Můžete odeslat testovací SMS z Ozeki GUI a ověřit, že vaše připojení k mobilní síti funguje. Posledním krokem k přípravě vašeho prostředí je vytvoření HTTP SMS API uživatele. Vytvořte uživatele s uživatelským jménem "http_user" a heslem "qwe123", aby příklad fungoval bez úprav.
Po nastavení prostředí můžete spustit svůj F# kód.
HTTP API URL pro odesílání SMS z F#
Pro odesílání SMS z F# bude vaše F# aplikace muset odeslat HTTP požadavek na SMS bránu. API URL je uvedeno níže. Poznámka: IP adresa (127.0.0.1) by měla být nahrazena IP adresou vaší SMS brány. Pokud je Ozeki SMS Gateway nainstalována na stejném počítači, kde běží F# SMS aplikace, může to být 127.0.0.1. Pokud je nainstalována na jiném počítači, měla by to být IP adresa tohoto počítače.
1 |
http: //127.0.0.1:9509/api?action=rest |
HTTP autentizace pro odesílání SMS z F#
Pro autentizaci F# SMS klienta je nutné odeslat uživatelské jméno a heslo v base64 kódovaném řetězci na server v HTTP požadavku. Použitý formát je: base64(username+":"+password). V C# můžete použít následující kód pro toto kódování:
1 2 3 |
var encoding = Encoding.GetEncoding( "iso-8859-1" ); var usernamePassword = username + ":" + password; var usernamePasswordEncoded = Convert.ToBase64String(encoding.GetBytes(usernamePassword)); |
Například, pokud zakódujete uživatelské jméno 'http_user' a heslo 'qwe123', získáte následující base64 kódovaný řetězec: aHR0cF91c2VyOnF3ZTEyMw==. Pro odeslání
HTTP hlavička požadavku pro odeslání SMS z F#
Pro odeslání SMS zpráv je nutné do HTTP požadavku zahrnout následující řádky jako hlavičky. Poznámka: zahrnujeme content type a Authorization hlavičku.
1 2 |
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== |
HTTP požadavek pro odeslání naplánované SMS z F#
Pro odeslání SMS bude vaše aplikace v F# odesílat HTTP požadavek podobný tomu níže. Všimněte si, že tento požadavek obsahuje část HTTP hlavičky a část HTTP těla. Tělo HTTP je řetězec dat zakódovaný v JSON. Obsahuje číslo příjemce a text zprávy.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
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:9509 { "messages" : [ { "message_id" : "d51ca3ba-4159-4dee-8541-106f8df76f91" , "to_address" : "+36201111111" , "text" : "Hello, World!" , "create_date" : "2021-06-11 14:09:22" , "valid_until" : "2021-06-18 14:09:22" , "time_to_send" : "2021-06-11 14:44:00" , "submit_report_requested" : true , "delivery_report_requested" : true , "view_report_requested" : true , "tags" : [] } ] } |
HTTP odpověď přijatá příkladem SMS v F#
Jakmile SMS brána obdrží tento požadavek, vygeneruje HTTP odpověď. HTTP odpověď bude obsahovat stavový kód, který indikuje, zda byl požadavek na odeslání SMS úspěšný nebo ne. Také vrátí strukturu zakódovanou v JSON, která vám poskytne užitečné detaily o odeslání zprávy.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
HTTP/1.1 200 OK User-Agent: OZEKI 10.3.118 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Fri, 11 Jun 2021 08:44:45 GMT Server: 10/10.3.118 Transfer-Encoding: chunked { "http_code" : 200, "response_code" : "SUCCESS" , "response_msg" : "Zprávy zařazeny do fronty k odeslání." , "data" : { "total_count" : 1, "success_count" : 1, "failed_count" : 0, "messages" : [ { "message_id" : "04682902-5360-4189-8082-ab455433d141" , "from_station" : "%" , "to_address" : "+36201111111" , "to_station" : "%" , "text" : "Hello, World!" , "create_date" : "2021-06-11 14:09:22" , "valid_until" : "2021-06-18 14:09:22" , "time_to_send" : "2021-06-11 14:44:00" , "submit_report_requested" : true , "delivery_report_requested" : true , "view_report_requested" : false , "tags" : [ { "name" : "Type" , "value" : "SMS:TEXT" } ], "status" : "SUCCESS" } ] } } |
Příklad SMS v F#: SendScheduledSms.sln
Jak stáhnout soubor projektu ze stránky ke stažení (Video návod)
V tomto videu se naučíte, jak stáhnout příklad projektu v F#. Video začíná na stránce ke stažení a končí otevřeným projektem. Naučíte se, jak projekt stáhnout a co dělat poté. Video je dlouhé pouze 1 minutu, ale je velmi užitečné. Díky své podrobnosti nebudete mít problém následovat jednotlivé kroky.
Příklad kódu níže je součástí SendScheduledSms.sln řešení Visual Studio. Řešení Visual Studio může obsahovat více projektů a více souborů. V tomto řešení je pouze jeden projekt: SendScheduledSms.fsproj, a jeden soubor: Program.fs.

Jak použít projekt naplánované SMS (Video návod)
V tomto videu se naučíte, jak použít projekt k odesílání naplánovaných SMS zpráv. Video začne otevřením Ozeki SMS brány a provede vás až ke kontrole složky s odloženými zprávami. Video je dlouhé pouze 1:26 a velmi podrobné. Díky tomu nebudete mít problém následovat návod.
Spuštění příkladu SMS v F# na Windows
Když použijete Windows pro spuštění tohoto příkladu SMS napsaného v F#, všimnete si, že získáte o něco lepší výkon než při spuštění na Linuxu. Abyste pochopili, proč k tomu dochází, musíte mít na paměti, že F# používá pro spouštění kódu framework .NET. Důvodem je, že implementace .NET na Windows je optimalizována pro výkon, zatímco mono, implementace .NET na Linuxu, má v této oblasti ještě co dohánět.
Závěr
Článek vysvětlil kroky plánování SMS v F# s pomocí Ozeki SMS brány. Plánování SMS je velmi užitečný nástroj, pokud chcete zajistit, aby se vaše zprávy vyhnuly rušným hodinám příjemců, takže zprávy nebudou ignorovány nebo zapomenuty. Ozeki SMS brána umožňuje zaznamenávat SMS zprávy do databáze a nabízí různé možnosti reportování, které poskytují informace o SMS spojení.
Nezastavujte svá studia zde, navštivte stránku s návody Ozeki, kde si můžete přečíst více o tématech jako mazání v F#.
Nyní zbývá jen stáhnout Ozeki SMS bránu a nechat práci začít!
More information
- Jak odeslat SMS z F#
- Jak odeslat více SMS z F#
- F# naplánovat SMS pomocí HTTP REST API (ukázka kódu)
- F# přijmout SMS pomocí HTTP REST API (ukázka kódu)
- F# smazat SMS pomocí HTTP REST API (ukázka kódu)
- Github: F# SMS API
- SMS NuGet knihovna pro F#