Jak odeslat více SMS z F#
Nejjednodušší způsob, jak odeslat SMS z F#, je použít vestavěné HTTP/Rest SMS API Ozeki SMS Gateway. Když použijete toto API, budete odesílat SMS zprávy odesláním HTTP Post požadavku na SMS bránu. HTTP Post požadavek bude obsahovat zprávu formátovanou ve formátu json. SMS brána odešle tuto SMS na cílový telefon a vrátí HTTP 200 OK odpověď na váš požadavek.
F# kód pro odeslání více SMS na mobil
Níže uvedený ukázkový kód F# pro SMS 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.fsopen System open Ozeki.Libs.Rest [<EntryPoint>] let main argv = let configuration = new Configuration ( Username = "http_user", Password = "qwe123", ApiUrl = "http://127.0.0.1:9509/api") let msg1 = new Message( ToAddress = "+36201111111", Text = "Hello, World 1") let msg2 = new Message( ToAddress = "+36202222222", Text = "Hello, World 2") let msg3 = new Message( ToAddress = "+36203333333", Text = "Hello, World 3") let messages = [msg1; msg2; msg3] let api = new MessageApi(configuration) let result = api.Send(messages) printfn $"{result.ToString()}" 0
Jak použít ukázku F# pro SMS:
Tuto ukázku F# pro SMS lze použít v jakékoli aplikaci .NET nebo .NET core. Pro použití musíte přidat odkaz na knihovnu Ozeki.Libs.Rest do svého projektu. Po přidání odkazu na projekt musíte vložit direktivu using Ozeki.Libs.Rest; do hlavičkové části vašeho zdrojového kódu F#. 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 SendMultipleSms.fs
Zdrojový kód vysvětlený v tomto článku lze stáhnout, použít a upravit zdarma.
Stáhnout: SendMultipleSms.fs.zip (59.6Kb)
Co je v souboru SendMultipleSms.fs?
Soubor SendMultipleSms.fs obsahuje knihovnu Ozeki.Libs.Rest, která vám poskytuje všechny nástroje potřebné pro odesílání a přijímání SMS zpráv. Najdete zde také projekt SendMultipleSms v zipu, který obsahuje ukázkový kód, který vám ukáže, jak odeslat více SMS zpráv najednou. 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 SendMultipleSms.sln
- Přidejte F# konzolový projekt: SendMultipleSms.fsproj
- Vložte kód do Program.cs nebo SendMultipleSms.fs
- Přečtěte si HTTP odpověď
- Zkontrolujte logy v SMS bráně
Jak napsat svůj první program v F# (Rychlé kroky)
Pro napsání prvního programu v F#:
- Nastavte Visual Studio
- Stáhněte soubor SendMultipleSms.fs.zip
- Rozbalte soubor .zip ze složky Stažené
- Otevřete soubor SendMultipleSms.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 Program.fs v Visual Studiu
- Zkontrolujte složku Odeslané v Ozeki SMS Gateway
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ě 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 odeslání SMS z F# bude váš C# 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 je potřeba odeslat uživatelské jméno a heslo ve formě řetězce zakódovaného v base64 na server v HTTP požadavku. Použitý formát je: base64(uživatelské_jméno+":"+heslo). V C# můžete pro toto kódování použít následující kód:
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í řetězec zakódovaný v base64: aHR0cF91c2VyOnF3ZTEyMw==. Pro odeslání
HTTP hlavička požadavku pro odesílání SMS z F#
Pro odeslání SMS zpráv je potřeba do HTTP požadavku zahrnout následující řádky jako hlavičky. Poznamenejte, že zahrnujeme typ obsahu a autorizační hlavičku.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP požadavek pro odesílání SMS z F#
Pro odeslání SMS bude vaše F# aplikace odesílat HTTP požadavek podobný tomuto níže. Všimněte si, že tento požadavek obsahuje část HTTP hlavičky a část těla HTTP. Tělo HTTP je řetězec dat zakódovaný v JSON. Obsahuje číslo příjemce a text zprávy.
HTTP request received from 127.0.0.1:56003 POST /api?action=sendmsg HTTP/1.1 Connection: Keep-Alive Content-Length: 983 Content-Type: application/json Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509 { "messages": [ { "message_id": "dcea98a0-7338-406a-96c8-86ddf9ccc1b6", "to_address": "+36201111111", "text": "Hello, World 1", "create_date": "2021-06-11 14:04:52", "valid_until": "2021-06-18 14:04:52", "time_to_send": "2021-06-11 14:04:52", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] }, { "message_id": "7af033fe-fc31-464a-b59a-992ec268f156", "to_address": "+36202222222", "text": "Hello, World 2", "create_date": "2021-06-11 14:04:52", "valid_until": "2021-06-18 14:04:52", "time_to_send": "2021-06-11 14:04:52", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] }, { "message_id": "29be6c7d-2474-4ab2-ad3c-d8d58e1cdd76", "to_address": "+36203333333", "text": "Hello, World 3", "create_date": "2021-06-11 14:04:52", "valid_until": "2021-06-18 14:04:52", "time_to_send": "2021-06-11 14:04:52", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] } ] }
HTTP odpověď přijatá F# SMS příkladem
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á poskytne užitečné detaily o odeslání zprávy.
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": 3, "success_count": 3, "failed_count": 0, "messages": [ { "message_id": "00da7d71-93f1-44c3-9975-4f9ce2ef6b28", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello, World 1", "create_date": "2021-06-11 14:04:52", "valid_until": "2021-06-18 14:04:52", "time_to_send": "2021-06-11 14:04:52", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "dde86f6d-7db6-4f77-aea2-2bafc8d09cf8", "from_station": "%", "to_address": "+36202222222", "to_station": "%", "text": "Hello, World 2", "create_date": "2021-06-11 14:04:52", "valid_until": "2021-06-18 14:04:52", "time_to_send": "2021-06-11 14:04:52", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "c2a3275c-7015-4462-bde3-db0c9d45701b", "from_station": "%", "to_address": "+36203333333", "to_station": "%", "text": "Hello, World 3", "create_date": "2021-06-11 14:04:52", "valid_until": "2021-06-18 14:04:52", "time_to_send": "2021-06-11 14:04:52", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
F# SMS příklad: SendMultipleSms.sln
Jak stáhnout a otevřít projekt (Video návod)
V tomto videu se naučíte, jak stáhnout ukázkový projekt v F#. Video začíná na stránce ke stažení a končí otevřeným projektem. Dozvíte se, jak projekt stáhnout a co dělat poté. Video je pouze 1 minutu dlouhé a velmi podrobné. Nebudete mít problém postupovat podle kroků. Odkaz ke stažení najdete na stránce s návodem.
Ukázkový kód níže je součástí SendMultipleSms.sln řešení Visual Studio. Řešení Visual Studio může obsahovat více projektů a souborů. V tomto řešení je pouze jeden projekt: SendMultipleSms.fsproj, a jeden soubor: Program.fs.
Jak používat projekt (Video návod)
V tomto videu se naučíte, jak používat projekt k odesílání více SMS najednou s pomocí F#. Video začne otevřením Ozeki SMS Gateway a provede vás až k adresáři s odeslanými zprávami. Naučíte se, jak spustit kód a jak zkontrolovat adresář s odeslanými zprávami. Video stojí za zhlédnutí, protože je snadno srozumitelné a podrobné, ale pouze 1 minutu dlouhé.
Spuštění F# SMS příkladu na Windows
Když použijete Windows ke spuštění tohoto SMS příkladu 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 spuštění kódu .NET framework. 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.
Shrnutí
Jak bylo vidět v článku výše, odesílání více SMS v F# pomocí Ozeki SMS Gateway je velmi jednoduché. Toto řešení vám umožní oslovit více zákazníků jediným kódem, čímž ušetříte náklady a čas. Důležité je poznamenat, že Ozeki SMS Gateway běží v prostředí, které kontrolujete, takže vaše data a seznam kontaktů jsou v bezpečí. Pokud byly kroky pečlivě dodrženy, lze zprávy s klienty odesílat bez jakýchkoliv komplikací.
Pokračujte ve vzdělávací cestě na stránce s návody Ozeki, kde najdete více o tématech jako plánování SMS a příjmu v F#.
Vaším dalším krokem by nyní mělo být stažení Ozeki SMS Gateway a začít pracovat!
More information