Ako poslať viacero SMS z F#
Najjednoduchší spôsob, ako poslať SMS z F#, je použiť vstavané HTTP/Rest SMS API Ozeki SMS Gateway. Keď použijete toto API, budete posielať SMS správy odoslaním HTTP POST požiadavky na SMS bránu. HTTP POST požiadavka bude obsahovať správu formátovanú v json formáte. SMS brána pošle túto SMS na príjemcove telefónne číslo a vráti HTTP 200 OK odpoveď na vašu požiadavku.
Ukážka F# kódu pre SMS nižšie demonštruje, ako môžete posielať SMS pomocou HTTP REST SMS API Ozeki SMS Gateway s použitím knižnice Ozeki.Libs.Rest pre F#. Táto knižnica je poskytovaná bezplatne a môžete ju používať a upravovať v akomkoľvek z vašich projektov.
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
Ako použiť F# príklad pre SMS:
Tento F# príklad pre SMS môže byť použitý v akomkoľvek .NET alebo .NET core aplikácii. Na jeho použitie musíte pridať Ozeki.Libs.Rest.dll ako referenciu do vášho projektu. Po pridaní referencie projektu musíte vložiť direktívu using Ozeki.Libs.Rest; do hlavičkovej časti vášho F# zdrojového kódu. To vám umožní používať triedy poskytované knižnicou Ozeki.Libs.Rest. Môžete použiť triedu Message na vytvorenie SMS. Môžete použiť triedu MessageApi na odoslanie SMS na SMS bránu. SMS brána prepošle vašu správu do mobilnej siete buď prostredníctvom bezdrôtového pripojenia alebo cez internet.
Stiahnuť SendMultipleSms.fs
Zdrojový kód vysvetlený v tomto článku môže byť stiahnutý, použitý a upravený bezplatne.
Stiahnuť: SendMultipleSms.fs.zip (59.6Kb)
Súbor SendMultipleSms.fs obsahuje knižnicu Ozeki.Libs.Rest, ktorá vám poskytuje všetky potrebné nástroje na odosielanie a prijímanie SMS správ. Nájdete tu aj projekt SendMultipleSms v zip súbore, ktorý obsahuje ukážkový kód, ktorý vám ukáže, ako poslať viacero SMS správ naraz. Tento ukážkový kód je uvedený nižšie.
Na odoslanie SMS z F#:
- Nainštalujte Ozeki SMS Gateway
- Pripojte Ozeki SMS Gateway k mobilnej sieti
- Odošlite testovaciu SMS z Ozeki GUI
- Vytvorte HTTP SMS API používateľa
- Spustite Visual Studio
- Vytvorte riešenie s názvom SendMultipleSms.sln
- Pridajte F# konzolový projekt: SendMultipleSms.fsproj
- Vložte kód do Program.cs alebo SendMultipleSms.fs
- Prečítajte si HTTP odpoveď
- Skontrolujte záznamy v SMS bráne
Na napísanie prvého F# programu:
- Nastavte Visual Studio
- Stiahnite si súbor SendMultipleSms.fs.zip
- Extrahujte .zip súbor z priečinka Stiahnuté
- Otvorte súbor SendMultipleSms.sln v Visual Studio
- Spustite aplikáciu Ozeki SMS Gateway
- Kliknite na HTTP používateľa na karte Používatelia a aplikácie
- Spustite Program.fs v Visual Studio
- Skontrolujte priečinok Odoslané v Ozeki SMS Gateway
Aby ste mohli posielať SMS z F#, musíte najprv nainštalovať Ozeki SMS Gateway. SMS bránu je možné nainštalovať na rovnakom počítači, kde vyvíjate svoj F# kód vo Visual Studio. Po inštalácii je ďalším krokom pripojenie Ozeki SMS Gateway k mobilnej sieti. Môžete odoslať testovaciu SMS z Ozeki GUI, aby ste overili, že vaše mobilné sieťové pripojenie funguje. Posledným krokom na prípravu vášho prostredia je vytvorenie HTTP SMS API používateľského účtu. Vytvorte používateľa s menom "http_user" a heslom "qwe123", aby príklad fungoval bez úprav.
Po nastavení prostredia môžete spustiť svoj F# kód.
HTTP API URL na odoslanie SMS z F#Na odoslanie SMS z F# bude váš C# musieť odoslať HTTP požiadavku na SMS bránu. API URL je uvedené nižšie. Upozorňujeme, že IP adresa (127.0.0.1) by mala byť nahradená IP adresou vašej SMS brány. Ak je Ozeki SMS Gateway nainštalovaná na rovnakom počítači, kde beží F# SMS aplikácia, môže to byť 127.0.0.1. Ak je nainštalovaná na inom počítači, mala by to byť IP adresa toho počítača.
http://127.0.0.1:9509/api?action=rest
HTTP autentifikácia na odosielanie SMS z F#
Na autentifikáciu F# SMS klienta musíte odoslať používateľské meno a heslo v base64 kódovanom reťazci na server v HTTP požiadavke. Používa sa formát: base64(používateľské meno+":"+heslo). V C# môžete na toto kódovanie použiť nasledujúci kód:
var encoding = Encoding.GetEncoding("iso-8859-1"); var usernamePassword = username + ":" + password; var usernamePasswordEncoded = Convert.ToBase64String(encoding.GetBytes(usernamePassword));
Napríklad, ak zakódujete používateľské meno 'http_user' a heslo 'qwe123', dostanete nasledujúci base64 kódovaný reťazec: aHR0cF91c2VyOnF3ZTEyMw==. Na odoslanie
HTTP hlavička požiadavky na odoslanie SMS z F#Na odoslanie SMS správ musíte do HTTP požiadavky zahrnúť nasledujúce riadky ako hlavičky. Poznamenajte, že zaraďujeme typ obsahu a autorizačnú hlavičku.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Na odoslanie SMS bude vaša F# aplikácia posielať HTTP požiadavku podobnú nižšie uvedenej. Všimnite si, že táto požiadavka obsahuje časť HTTP hlavičky a časť tela HTTP. Telo HTTP je reťazec dát zakódovaný v JSON. Obsahuje číslo príjemcu a text sprá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": [] } ] }
Keď SMS brána prijme túto požiadavku, vygeneruje HTTP odpoveď. HTTP odpoveď bude obsahovať stavový kód, ktorý indikuje, či bola požiadavka na odoslanie SMS úspešná alebo nie. Tiež vráti štruktúru zakódovanú v JSON, ktorá poskytne užitočné informácie o odoslaní sprá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": "Messages queued for delivery.", "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" } ] } }
Ako stiahnuť a otvoriť projekt (Video návod)
V tomto videu sa naučíte, ako stiahnuť ukážkový projekt v jazyku F#. Video začína na stránke na stiahnutie a končí otvoreným projektom. Naučíte sa, ako projekt stiahnuť a čo robiť potom. Video je dlhé len 1 minútu a je veľmi podrobné. Nebudete mať problém postupovať podľa krokov. Odkaz na stiahnutie nájdete na stránke s návodom.
Ukážkový kód nižšie je súčasťou SendMultipleSms.sln riešenia vo Visual Studio. Riešenie vo Visual Studio môže obsahovať viacero projektov a súborov. V tomto riešení je len jeden projekt: SendMultipleSms.fsproj, a jeden súbor: Program.fs.
V tomto videu sa naučíte, ako používať projekt na odosielanie viacerých SMS naraz s pomocou jazyka F#. Video začína otvorením Ozeki SMS Gateway a prevedie vás až k priečinku s odoslanými správami. Naučíte sa, ako spustiť kód a ako skontrolovať priečinok s odoslanými správami. Video stojí za pozretie, pretože je ľahko zrozumiteľné a podrobné, ale trvá len 1 minútu.
Spustenie príkladu SMS v jazyku F# v systéme Windows
Keď použijete Windows na spustenie tohto príkladu SMS napísaného v jazyku F#, všimnete si, že dostanete o niečo lepší výkon ako pri spustení v systéme Linux. Aby ste pochopili, prečo sa to deje, musíte mať na pamäti, že F# používa na vykonávanie kódu .NET framework. Je to preto, lebo implementácia .NET v systéme Windows je optimalizovaná na výkon, zatiaľ čo mono, implementácia .NET v systéme Linux, má v tejto oblasti ešte čo doháňať.
ZhrnutieAko bolo vidieť v článku vyššie, odosielanie viacerých SMS v jazyku F# pomocou Ozeki SMS Gateway je veľmi jednoduché. Toto riešenie vám umožňuje osloviť viacerých zákazníkov jedným kódom, čím ušetríte náklady a čas. Dôležité je poznamenať, že Ozeki SMS Gateway beží v prostredí, ktoré kontrolujete, takže vaše dáta a zoznam kontaktov sú v bezpečí. Ak boli kroky dodržané starostlivo, komunikácia s klientmi môže prebiehať bez akýchkoľvek komplikácií.
Pokračujte v učebnej ceste na stránke s návodmi Ozeki, kde nájdete viac o témach ako plánovanie SMS a prijímanie v jazyku F#.
Vašou ďalšou úlohou je teraz stiahnuť si Ozeki SMS Gateway a začať pracovať!
More information