Ako prijímať SMS v F#

Najjednoduchší spôsob, ako posielať 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 odošle túto SMS príjemcovi a vráti HTTP 200 OK odpoveď na vašu požiadavku.

ako prijímať sms správy pomocou f sharp
Obrázok 1 - Prijímanie SMS správ pomocou F#

F# kód na prijímanie SMS

Ukážka F# kódu pre SMS nižšie demonštruje, ako môžete prijímať SMS pomocou http rest SMS API Ozeki SMS Gateway pomocou knižnice F# Ozeki.Libs.Rest. Táto knižnica je poskytovaná bezplatne a môžete ju použiť a upraviť v akomkoľvek z vašich projektov.

Program.fs
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 api = new MessageApi(configuration)

    let result = api.DownloadIncoming();

    printfn $"V priečinku doručenej pošty je {result.Length} správ:"
    for message in result do
        printfn $"Od: {message.FromAddress} - Text: {message.Text}"
    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 použitie je potrebné 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 MessageApi na prijatie SMS z SMS brány.

Stiahnuť ReceiveSms.fs

Zdrojový kód vysvetlený v tomto článku môže byť stiahnutý a používaný a upravovaný bezplatne.
Stiahnuť: ReceiveSms.fs.zip (51.2Kb)

Čo obsahuje súbor ReceiveSms.fs?

Súbor ReceiveSms.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 ReceiveSms v zip súbore, ktorý obsahuje ukážkový kód, ktorý vám ukáže, ako prijímať SMS. Tento ukážkový kód je uvedený nižšie.

čo obsahuje ozeki receive sms zip
Obrázok 2 - Čo je vo vnútri ReceiveSms.fs.zip

Ako prijímať SMS z F# (Rýchle kroky)

Na prijímanie SMS z F#:

  1. Nainštalujte Ozeki SMS Gateway
  2. Pripojte Ozeki SMS Gateway k mobilnej sieti
  3. Odošlite testovaciu SMS z Ozeki GUI
  4. Vytvorte HTTP SMS API používateľa
  5. Spustite Visual Studio
  6. Vytvorte riešenie s názvom ReceiveSms.sln
  7. Pridajte F# konzolový projekt: ReceiveSms.fsproj
  8. Vložte kód do Program.fs alebo ReceiveSms.fs
  9. Vytvorte HTTP požiadavku na prijatie SMS
  10. Prečítajte si HTTP odpoveď
  11. Vypíšte odpoveď na konzolu
  12. Skontrolujte záznamy v SMS bráne
Nainštalujte Ozeki SMS Gateway a vytvorte HTTP API používateľa

Aby ste mohli odosielať 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 v 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 na overenie, ž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 používateľským 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 prijímanie SMS z F#

Na odosielanie SMS z F# bude vaše F# 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 tohto počítača.

http://127.0.0.1:9509/api?action=rest
HTTP autentifikácia na prijímanie 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žitý formát je: base64(používateľské meno+":"+heslo). V C# môžete použiť nasledujúci kód na toto kódovanie:

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 prijímanie SMS z F#

Na odosielanie SMS správ musíte zahrnúť nasledujúce riadky ako hlavičky do HTTP požiadavky. Upozorňujeme, že zaraďujeme content type a Authorization hlavičku.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

HTTP požiadavka na prijatie SMS pomocou F#

Na odoslanie SMS, vaša F# aplikácia odošle HTTP požiadavku podobnú ako tá nižšie. Upozorňujeme, že táto požiadavka obsahuje časť HTTP hlavičky a časť HTTP tela. HTTP telo je reťazec dát zakódovaný v JSON. Obsahuje číslo príjemcu a text správy.

GET /api?action=receivemsg&folder=inbox HTTP/1.1
Connection: Keep-Alive
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
	
HTTP odpoveď prijatá F# príkladom SMS

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. Taktiež 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.116 (www.myozeki.com)
Content-Type: application/json; charset=utf8
Last-Modified: Thu, 10 Jun 2021 11:02:26 GMT
Server: 10/10.3.116
Transfer-Encoding: chunked
{
	"http_code": 200,
	"response_code": "SUCCESS",
	"response_msg": "",
	"data": {
	  "folder": "inbox",
	  "limit": "1000",
	  "data": [
	    {
	      "message_id": "94219121-e5b5-4845-9721-074f5307c9a4",
	      "from_connection": "http_user@localhost",
	      "from_address": "+36203333333",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 3",
	      "create_date": "2021-06-10 11:46:16",
	      "valid_until": "2021-06-17 11:46:16",
	      "time_to_send": "2021-06-10 11:46:16",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "d6f832b2-dbc8-4b1b-8b47-44b3bb6658bf",
	      "from_connection": "http_user@localhost",
	      "from_address": "+36202222222",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 2",
	      "create_date": "2021-06-10 11:46:16",
	      "valid_until": "2021-06-17 11:46:16",
	      "time_to_send": "2021-06-10 11:46:16",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "0bf86b3a-e4a9-4d8e-970c-ed486b02db7a",
	      "from_connection": "http_user@localhost",
	      "from_address": "+362011111111",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 1",
	      "create_date": "2021-06-10 11:46:16",
	      "valid_until": "2021-06-17 11:46:16",
	      "time_to_send": "2021-06-10 11:46:16",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    }
	  ]
	}
}
	
F# príklad SMS: ReceiveSms.sln Ako stiahnuť projekt ReceiveSms.sln (Video návod)

V tomto videu sa naučíte, ako stiahnuť príkladový projekt v F#. Video začína na stránke na stiahnutie a končí otvoreným projektom. Naučíte sa, ako stiahnuť projekt a čo s ním urobiť, aby ste mohli prijímať SMS správy. Video je dlhé len 58 sekúnd, ale je veľmi nápomocné. Vďaka tejto detailnosti nebudete mať problém postupovať podľa krokov.

Video 1 - Ako stiahnuť a spustiť príkladový projekt vyššie (Video návod)

Príkladový kód nižšie je súčasťou ReceiveSms.sln riešenia Visual Studio. Riešenie Visual Studio môže obsahovať viacero projektov a súborov. V tomto riešení sú len dva projekty: ReceiveSms.fsproj, Ozeki.Libs.Rest.csproj, a jeden súbor: Program.fs.

Obrázok 3 - ReceiveSms.sln

Ako používať projekt ReceiveSms.sln (Video návod)

V tomto videu sa naučíte, ako používať projekt na prijímanie SMS správ pomocou F#. Video začína otvorením Ozeki SMS brány a prevedie vás až ku kontrole príkazového riadku s prijatými správami. Video je dlhé len 54 sekúnd a veľmi detailné. Vďaka tomu nebudete mať problém postupovať podľa návodu.

Video 2 - Ako používať riešenie ReceiveSms.fs (Video návod)

Spustenie F# príkladu SMS na Windows

Keď použijete Windows na spustenie tohto príkladu SMS napísaného v F#, všimnete si, že dostanete mierne lepší výkon, ako keď ho spustíte na Linuxe. 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 na Windows je optimalizovaná pre výkon, zatiaľ čo mono, implementácia .NET na Linuxe, má v tejto oblasti ešte čo doháňať.

Záver

Vyššie uvedený článok vysvetlil kroky prijímania SMS v jazyku F# pomocou Ozeki SMS Gateway. S týmto riešením môžete prijímať textové správy od svojich zákazníkov do svojho programu v jazyku F# s pomocou Ozeki SMS Gateway. Dôležité je spomenúť, že Ozeki SMS Gateway funguje v každej krajine a môže odosielať a prijímať SMS cez rôzne mobilné pripojenia, takže sa nemusíte obávať, ak sa výmena informácií stane medzinárodnou.

Ak chcete pokračovať v učebnej ceste, navštívte stránku s návodmi Ozeki, kde nájdete viac informácií o témach ako plánovanie v jazyku F#.

Teraz už vám stačí len stiahnuť Ozeki SMS Gateway a môžete začať pracovať!

More information