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.

poslať viacero sms z f
Obrázok 1 - Poslať viacero SMS z F#

F# kód na odoslanie viacerých SMS na mobil

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.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 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)

Čo obsahuje súbor SendMultipleSms.fs?

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.

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

Ako poslať 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 HTTP SMS API používateľa
  5. Spustite Visual Studio
  6. Vytvorte riešenie s názvom SendMultipleSms.sln
  7. Pridajte F# konzolový projekt: SendMultipleSms.fsproj
  8. Vložte kód do Program.cs alebo SendMultipleSms.fs
  9. Prečítajte si HTTP odpoveď
  10. Skontrolujte záznamy v SMS bráne
Ako napísať svoj prvý F# program (Rýchle kroky)

Na napísanie prvého F# programu:

  1. Nastavte Visual Studio
  2. Stiahnite si súbor SendMultipleSms.fs.zip
  3. Extrahujte .zip súbor z priečinka Stiahnuté
  4. Otvorte súbor SendMultipleSms.sln v Visual Studio
  5. Spustite aplikáciu Ozeki SMS Gateway
  6. Kliknite na HTTP používateľa na karte Používatelia a aplikácie
  7. Spustite Program.fs v Visual Studio
  8. Skontrolujte priečinok Odoslané v Ozeki SMS Gateway
Nainštalujte Ozeki SMS Gateway a vytvorte HTTP API používateľa

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==
HTTP požiadavka na odoslanie SMS z F#

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": []
    }
  ]
}
HTTP odpoveď prijatá F# SMS príkladom

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"
      }
    ]
  }
}
F# SMS príklad: SendMultipleSms.sln

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.

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

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.

Obrázok 3 - SendMultipleSms.sln

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

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.

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

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ť.

Zhrnutie

Ako 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