Ako naplánovať SMS v F#

Najjednoduchší spôsob, ako odoslať SMS z F#, je použiť vstavanú HTTP/Rest SMS API Ozeki SMS Gateway. Keď použijete toto API, budete odosielať SMS správy vytvorením HTTP POST požiadavky na SMS bránu. HTTP POST požiadavka bude obsahovať správu vo formáte JSON. SMS brána odošle túto SMS na príjemcove telefónne číslo a vráti HTTP 200 OK odpoveď na vašu požiadavku.

ako odoslať sms v budúcnosti f sharp
Obrázok 1 - Naplánovanie SMS na neskoršie odoslanie v F#

F# kód na odoslanie naplánovanej SMS na mobil

Ukážka kódu F# nižšie demonštruje, ako môžete odosielať 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.fs
open 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 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

Ako použiť ukážku F# SMS:

Túto ukážku F# SMS môžete použiť v akomkoľvek .NET alebo .NET Core aplikácii. Na jej 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ď bezdrôtovým pripojením alebo cez internet.

Stiahnuť SendScheduledSms.fs

Zdrojový kód vysvetlený v tomto článku je možné stiahnuť, použiť a upravovať bezplatne.
Stiahnuť: SendScheduledSms.fs.zip (59.8Kb)

Čo obsahuje súbor SendScheduledSms.fs?

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

Obrázok 2 - Čo obsahuje SendScheduledSms.fs.zip

Ako odoslať SMS z F# (Rýchle kroky)

Na odoslanie 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 používateľa HTTP SMS API
  5. Spustite Visual Studio
  6. Vytvorte riešenie s názvom SendScheduledSms.sln
  7. Pridajte F# konzolový projekt: SendScheduledSms.fsproj
  8. Vložte kód do Program.fs alebo SendScheduledSms.fs
  9. Prečítajte si HTTP odpoveď
  10. Skontrolujte záznamy v SMS bráne
Nainštalujte Ozeki SMS Gateway a vytvorte používateľa HTTP API

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 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 pripojenie k mobilnej sieti funguje. Posledným krokom pri príprave vášho prostredia je vytvorenie používateľa HTTP SMS API. 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.

URL HTTP API na odoslanie SMS z F#

Na odoslanie SMS z F# bude vaše F# aplikácia 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 odoslanie 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

Hlavička HTTP požiadavky na odoslanie SMS z F#

Na odoslanie SMS správ musíte do hlavičky HTTP požiadavky zahrnúť nasledujúce riadky. Poznamenajte si, že obsahujeme hlavičku Content-Type a Authorization.

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

HTTP požiadavka na odoslanie naplánovanej SMS z F#

Na odoslanie SMS bude vaša aplikácia v F# posielať HTTP požiadavku podobnú ako je uvedená nižšie. Upozorňujeme, že táto požiadavka obsahuje časť HTTP hlavičky a časť HTTP tela. Telo HTTP je reťazec dát zakódovaný v JSON. Obsahuje číslo príjemcu a text sprá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:9509

{
  "messages": [
    {
      "message_id": "d51ca3ba-4159-4dee-8541-106f8df76f91",
      "to_address": "+36201111111",
      "text": "Ahoj, svet!",
      "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 odpoveď prijatá príkladom SMS v F#

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": "Správy zaradené do fronty na doručenie.",
  "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": "Ahoj, svet!",
        "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"
      }
    ]
  }
}

Príklad SMS v F#: SendScheduledSms.sln



Ako stiahnuť súbor projektu zo stránky na stiahnutie (Video návod)

V tomto videu sa naučíte, ako stiahnuť príklad projektu v F#. Video začína na stránke na stiahnutie a končí otvoreným projektom. Naučíte sa, ako stiahnuť projekt a čo robiť potom. Video je dlhé len 1 minútu, ale je veľmi užitočné. Vďaka tejto detailnosti nebudete mať problém postupovať podľa krokov.

Video 1 - Ako stiahnuť a spustiť príklad projektu vyššie (Video návod)

Príklad kódu nižšie je súčasťou SendScheduledSms.sln riešenia Visual Studio. Riešenie Visual Studio môže obsahovať viacero projektov a viacero súborov. V tomto riešení je len jeden projekt: SendScheduledSms.fsproj, a jeden súbor: Program.fs.

Obrázok 3 - SendScheduledSms.sln

Ako použiť projekt naplánovanej SMS (Video návod)

V tomto videu sa naučíte, ako použiť projekt na odosielanie naplánovaných SMS správ. Video začína otvorením Ozeki SMS brány a prevedie vás až ku kontrole priečinka s odloženými správami. Video je dlhé len 1:26 a je veľmi detailné. Vďaka tomu nebudete mať problém postupovať podľa návodu.

Video 2 - Ako použiť riešenie Send-scheduled-SMS.fs (Video návod)

Spustenie príkladu SMS v F# 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 nejaké rezervy.

Záver

Článok vysvetlil kroky naplánovania SMS v F# s pomocou Ozeki SMS brány. Naplánovanie SMS je veľmi užitočný nástroj, ak chcete zabezpečiť, aby sa vaše správy vyhli rušným hodinám príjemcov, takže správy nebudú ignorované alebo zabudnuté. Ozeki SMS brána umožňuje zaznamenávať SMS správy do databázy a ponúka rôzne možnosti reportovania, ktoré poskytujú informácie o SMS spojení.

Nezastavujte svoje štúdium tu, navštívte stránku s návodmi Ozeki, kde si môžete prečítať viac o témach ako mazanie v F#.

Teraz už len zostáva stiahnuť Ozeki SMS bránu a nechať prácu začať!

More information