Jak poslat SMS z F#
Nejjednodušší způsob, jak poslat SMS z F#, je použít vestavěnou HTTP/Rest SMS API Ozeki SMS Gateway. Když použijete toto API, budete posí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 pošle tuto SMS na cílové telefonní číslo a vrátí HTTP 200 OK odpověď na váš požadavek.
Příklad kódu pro odeslání SMS z F#
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 = "Hello, World!") let api = new MessageApi(configuration) let result = api.Send(msg) printfn $"{result.ToString()}" 0
Stáhnout SendSms.fs
Zdrojový kód vysvětlený v tomto článku lze stáhnout, použít a upravit zdarma.
Stáhnout: SendSms.fs.zip (59.4Kb)
Co obsahuje soubor SendSms.fs.zip?
Soubor SendSms.fs.zip 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 SendSms, který obsahuje ukázkový kód, který vám ukáže, jak odeslat SMS. Tento ukázkový kód je uveden níže.
Jak poslat 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 SendSms.sln
- Přidejte F# konzolový projekt: SendSms.fsproj
- Vložte kód do Program.fs nebo SendSms.fs
- Přečtěte si HTTP odpověď
- Zkontrolujte logy v SMS bráně
Jak napsat svůj první F# program (Rychlé příkazy)
Pro napsání prvního F# programu:
- Nastavte Visual Studio
- Stáhněte soubor SendSms.fs.zip
- Rozbalte .zip soubor ze složky Stažené
- Otevřete soubor SendSms.sln v Visual Studiu
- Spusťte aplikaci Ozeki SMS Gateway
- Klikněte na HTTP uživatele v záložce Uživatelé a aplikace
- Spusťte SendSMS.fs v Visual Studiu
- Zkontrolujte složku Odeslané v Ozeki SMS Gateway
- Vyberte SMPP klientské připojení na domovské stránce
- Zaškrtněte všechna políčka Log level v záložce Pokročilé v menu Konfigurovat
- Znovu spusťte Program.fs v Visual Studiu
- Najděte událost, pokud příjemce obdržel vaši zprávu
Nainstalujte Ozeki SMS Gateway a vytvořte HTTP API uživatele
Abyste mohli posí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 v 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ě 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 váš F# kód 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.
http://127.0.0.1:9509/api?action=rest
HTTP autentizace pro odesílání SMS z F#
Pro autentizaci F# SMS klienta musíte 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í:
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', dostanete 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 musíte do HTTP požadavku zahrnout následující řádky jako hlavičky. Poznámka: zahrnujeme content type a Authorization hlavičku.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP požadavek pro odeslání 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.
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 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.
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": "Messages queued for delivery.", "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" } ] } }
Jak odeslat SMS z F# (Video návod)
Toto video vám ukáže, jak vytvořit nový projekt konzolové aplikace .Net core v Visual Studiu, jak jej pojmenovat na SendSms.sln. Jakmile je řešení vytvořeno, můžete si všimnout, že SendSms.fsproj je přidán do řešení a ve výchozím nastavení je otevřen soubor Program.cs. Můžete přejmenovat Program.fs na SendSms.fs, pokud si přejete. Ve videu také uvidíte, jak lze níže uvedený příklad kódu zkopírovat do souboru Program.fs a jak jej lze zkompilovat a spustit.
SendSms.sln
Níže uvedený příklad kódu je součástí řešení Visual Studio SendSms.sln. Řešení Visual Studio může obsahovat více projektů a více souborů. V tomto řešení jsou pouze dva projekty: SendSms.fsproj, Ozeki.Libs.Rest.csproj a jeden soubor: Program.fs.
Jak ověřit, že SMS byla přijata HTTP uživatelem
Po odeslání SMS je dobré zkontrolovat vaši SMS bránu, abyste viděli, co přijala. Protokol můžete zkontrolovat otevřením detailů HTTP uživatele v konzoli pro správu Ozeki SMS brány. Následující video vám ukáže, na co se zaměřit.
Jak ověřit, že SMS byla odeslána do mobilní sítě
Posledním krokem při ověřování postupu je podívat se na protokoly připojení k mobilní síti. Možná budete muset před odesláním zprávy zapnout protokolování v konfiguraci připojení, abyste viděli protokoly. Pokud je protokolování povoleno, uvidíte telefonní číslo a text zprávy, kterou jste odeslali.
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 nějaké zpoždění.
ZávěrVýše uvedený článek ukázal kroky pro odesílání SMS ve F#. S uvedeným návodem je odesílání zpráv pomocí F# a Ozeki SMS Gateway rychlé a jednoduché. Ozeki SMS Gateway nabízí vynikající možnosti protokolování, takže chyby lze snadno dohledat. Vy nebo vaše organizace můžete s tímto řešením rychle oslovit zákazníky, a jak bylo vidět, není nutné být expertem na F#.
Chcete-li pokračovat ve studiu, navštivte tutoriálovou stránku Ozeki, kde najdete více informací o práci s F#, jako je plánování SMS.
Nyní už zbývá jen stáhnout Ozeki SMS Gateway a začít pracovat!
More information