Ako poslať 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 príjemcovi a vráti HTTP 200 OK odpoveď na vašu požiadavku.

ako poslať sms z f
Obrázok 1 - Ako poslať SMS z F#

F# príklad kódu na odoslanie SMS Program.fs
open 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
Stiahnuť SendSms.fs

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

Čo obsahuje súbor SendSms.fs.zip?

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

Obrázok 2 - Čo je vo vnútri SendSms.fs.zip

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

Ak chcete poslať 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 SendSms.sln
  7. Pridajte F# konzolový projekt: SendSms.fsproj
  8. Vložte kód do Program.fs alebo SendSms.fs
  9. Prečítajte si HTTP odpoveď
  10. Skontrolujte záznamy v SMS bráne
Ako napísať svoj prvý F# program (Rýchle príkazy)

Ak chcete napísať svoj prvý F# program:

  1. Nastavte Visual Studio
  2. Stiahnite si súbor SendSms.fs.zip
  3. Extrahujte súbor .zip z priečinka Stiahnuté
  4. Otvorte súbor SendSms.sln v Visual Studio
  5. Spustite aplikáciu Ozeki SMS Gateway
  6. Kliknite na používateľa HTTP na karte Používatelia a aplikácie
  7. Spustite SendSMS.fs v Visual Studio
  8. Skontrolujte pole Odoslané v Ozeki SMS Gateway
  9. Vyberte pripojenie SMPP klienta na domovskej stránke
  10. Zaškrtnite všetky políčka Úroveň protokolu na karte Pokročilé v menu Konfigurácia
  11. Znova spustite Program.fs v Visual Studio
  12. Nájdite udalosť, ak príjemca prijal vašu správu
Nainštalujte Ozeki SMS Gateway a vytvorte používateľa HTTP API

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 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, aby ste overili, že vaše pripojenie k mobilnej sieti funguje. Posledným krokom na prípravu vášho prostredia je vytvorenie používateľa HTTP SMS API. 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 odoslanie SMS z F#

Ak chcete poslať SMS z F#, váš F# bude 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 overenie 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 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 hlavičiek HTTP požiadavky zahrnúť nasledujúce riadky. Upozorňujeme, že zaraďujeme typ obsahu a autorizačnú hlavičku.

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

HTTP požiadavka na odoslanie SMS z F#

Na odoslanie SMS bude vaša aplikácia v F# posielať HTTP požiadavku podobnú ako tá 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: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 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.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"
      }
    ]
  }
}

Ako odoslať SMS z F# (Video návod)

Toto video vám ukáže, ako vytvoriť nový projekt konzolovej aplikácie .Net core v Visual Studio, ako ho pomenovať na SendSms.sln. Keď je riešenie vytvorené, môžete si všimnúť, že SendSms.fsproj je pridaný do riešenia a štandardne je otvorený súbor Program.cs. Môžete premenovať Program.fs na SendSms.fs, ak si budete priať. Vo videu uvidíte tiež, ako môže byť príklad kódu nižšie skopírovaný do súboru Program.fs a ako môže byť skompilovaný a spustený.

Video 1 - Ako stiahnuť a otvoriť riešenie (Video návod)

SendSms.sln

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

Obrázok 3 - SendSms.sln

Ako skontrolovať, že SMS bola prijatá HTTP používateľom

Po odoslaní SMS je dobré skontrolovať vašu SMS bránu, aby ste videli, čo prijala. Môžete skontrolovať log otvorením detailov HTTP používateľa v konzole správy Ozeki SMS Gateway. Nasledujúce video vám ukáže, čo hľadať.

Video 2 - Ako odoslať SMS s F# kódom vyššie (Video návod)

Ako skontrolovať, že SMS bola odoslaná do mobilnej siete

Posledným krokom pri overovaní postupu je pozrieť sa na logy pripojenia k mobilnej sieti. Možno budete musieť zapnúť logovanie v konfigurácii pripojenia pred odoslaním správy, aby ste videli logy. Ak je logovanie zapnuté, uvidíte telefónne číslo a text správy, ktorú ste odoslali.

Video 3 - Ako zapnúť logovanie v Ozeki SMS Gateway (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 .NET framework na vykonávanie kódu. 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 nejaké nedostatky.

Záver

Vyššie uvedený článok ukázal kroky na odosielanie SMS v jazyku F#. S danými inštrukciami je odosielanie správ pomocou F# a Ozeki SMS Gateway rýchle a jednoduché. Ozeki SMS Gateway ponúka vynikajúce možnosti logovania, takže chyby sa dajú ľahko vystopovať. Vy alebo vaša organizácia môžete s týmto riešením rýchlo osloviť zákazníkov a ako bolo vidieť, byť expertom na F# nie je nutné.

Ak chcete pokračovať v štúdiu, navštívte stránku s návodmi Ozeki, kde nájdete viac informácií o práci s F#, ako napríklad plánovanie SMS.

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

More information