Kako načrtovati SMS v F#

Najenostavnejši način za pošiljanje SMS iz F# je uporaba vgrajenega HTTP/Rest SMS API-ja Ozeki SMS Gateway. Ko uporabljate ta API, boste pošiljali SMS sporočila z izdajo HTTP Post zahteve na SMS prehod. HTTP Post zahteva bo vsebovala sporočilo v json formatu. SMS prehod bo poslal ta SMS prejemniku in vrnil HTTP 200 OK odgovor na vašo zahtevo.

kako poslati sms v prihodnosti f sharp
Slika 1 - F# načrtovanje SMS za prihodnjo dostavo

F# koda za pošiljanje načrtovanega sms na mobilno napravo

Spodnji F# sms vzorčni kod prikazuje, kako lahko pošiljate SMS z uporabo http rest sms api-ja Ozeki SMS Gateway z uporabo knjižnice F# Ozeki.Libs.Rest. Ta knjižnica vam je na voljo brezplačno in jo lahko uporabljate in spreminjate v katerem koli od vaših 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 = "Pozdravljen, svet!",
        TimeToSend = DateTime.Parse("2021-06-07 11:44:00"))

    let api = new MessageApi(configuration)

    let result = api.Send(msg)

    printfn $"{result.ToString()}"
    0

Kako uporabiti F# sms primer:

Ta F# sms primer lahko uporabite v kateri koli .NET ali .NET core aplikaciji. Za uporabo morate dodati Ozeki.Libs.Rest dll kot referenco v vaš projekt. Po dodajanju reference projekta morate v glavni del vaše F# izvorne kode dodati direktivo using Ozeki.Libs.Rest;. To vam bo omogočilo uporabo razredov, ki jih ponuja knjižnica Ozeki.Libs.Rest. Razred Message lahko uporabite za ustvarjanje SMS. Razred MessageApi lahko uporabite za pošiljanje SMS na SMS prehod. SMS prehod bo vaše sporočilo posredoval mobilnemu omrežju prek brezžične povezave ali prek interneta.

Prenesite SendScheduledSms.fs

Izvorna koda, razložena v tem članku, je na voljo za brezplačen prenos in uporabo ter spreminjanje.
Prenos: SendScheduledSms.fs.zip (59,8Kb)

Kaj je v datoteki SendScheduledSms.fs?

Datoteka SendScheduledSms.fs vsebuje knjižnico Ozeki.Libs.Rest, ki vam nudi vsa orodja, potrebna za pošiljanje in prejemanje SMS sporočil. V zip datoteki boste našli tudi projekt SendScheduledSms, ki vsebuje vzorčno kodo, ki vam pokaže, kako poslati SMS. Ta vzorčna koda je navedena spodaj.

Slika 2 - Kaj je v SendScheduledSms.fs.zip

Kako poslati SMS iz F# (Hitri koraki)

Za pošiljanje sms iz F#:

  1. Namestite Ozeki SMS Gateway
  2. Povežite Ozeki SMS Gateway z mobilnim omrežjem
  3. Pošljite testni sms iz Ozeki GUI
  4. Ustvarite uporabnika HTTP sms api
  5. Zaženite Visual Studio
  6. Ustvarite rešitev z imenom SendScheduledSms.sln
  7. Dodajte F# konzolni projekt: SendScheduledSms.fsproj
  8. Vstavite kodo v Program.fs ali SendScheduledSms.fs
  9. Preberite HTTP odgovor
  10. Preverite dnevnike v SMS prehodu
Namestite Ozeki SMS Gateway in ustvarite uporabnika HTTP API

Da lahko pošiljate SMS iz F#, morate najprej namestiti Ozeki SMS Gateway. SMS prehod lahko namestite na isti računalnik, kjer razvijate svojo F# kodo v Visual studiu. Po namestitvi je naslednji korak povezovanje Ozeki SMS Gateway z mobilnim omrežjem. Lahko pošljete testni sms iz Ozeki GUI, da preverite, ali vaša mobilna omrežna povezava deluje. Končni korak za pripravo vašega okolja je ustvarjanje uporabnika HTTP sms api. Ustvarite uporabnika z uporabniškim imenom "http_user" in geslom "qwe123", da primer deluje brez sprememb.

Ko je okolje pripravljeno, lahko zaženete svojo F# kodo.

HTTP API url za pošiljanje sms iz F#

Za pošiljanje SMS iz F#, bo vaša F# aplikacija morala izdati HTTP zahtevo na SMS prehod. API url je prikazan spodaj. Upoštevajte, da je treba IP naslov (127.0.0.1) zamenjati z IP naslovom vašega SMS prehoda. Če je Ozeki SMS Gateway nameščen na istem računalniku, kjer teče vaša F# sms aplikacija, je to lahko 127.0.0.1. Če je nameščen na drugem računalniku, mora biti to IP naslov tega računalnika.

http://127.0.0.1:9509/api?action=rest
HTTP avtentikacija za pošiljanje sms iz F#

Za avtentikacijo F# sms odjemalca morate uporabniško ime in geslo poslati v base64 kodiranem nizu na strežnik v HTTP zahtevi. Uporabljen format je: base64(uporabniško_ime+":"+geslo). V C# lahko za to kodiranje uporabite naslednjo kodo:

var encoding = Encoding.GetEncoding("iso-8859-1");
var usernamePassword = username + ":" + password;
var usernamePasswordEncoded = Convert.ToBase64String(encoding.GetBytes(usernamePassword));

Na primer, če kodirate uporabniško ime 'http_user' in geslo 'qwe123', boste dobili naslednji base64 kodiran niz: aHR0cF91c2VyOnF3ZTEyMw==. Za pošiljanje

HTTP glava zahteve za pošiljanje SMS iz F#

Za pošiljanje SMS sporočil morate vključiti naslednje vrstice kot glave v HTTP zahtevo. Upoštevajte, da vključujemo tip vsebine in avtorizacijsko glavo.

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

HTTP zahteva za pošiljanje načrtovanega SMS iz F#

Za oddajo SMS bo vaša aplikacija v F# poslala HTTP zahtevo, podobno spodnji. Upoštevajte, da ta zahteva vsebuje del glave HTTP in del telesa HTTP. Telo HTTP je niz podatkov, kodiran v JSON. Vsebuje prejemnikovo številko in besedilo sporočila.

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": "Hello, World!",
      "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 odziv, prejet v primeru SMS v F#

Ko SMS prehod prejme to zahtevo, bo ustvaril HTTP odziv. HTTP odziv bo vseboval statusno kodo, ki označuje, ali je bila zahteva za oddajo SMS uspešna ali ne. Prav tako bo vrnil strukturo, kodirano v JSON, ki vam bo zagotovila uporabne podrobnosti o oddaji sporočila.

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": "Sporočila v čakalni vrsti za dostavo.",
  "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": "Hello, World!",
        "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"
      }
    ]
  }
}

Primer SMS v F#: SendScheduledSms.sln



Kako prenesti projektno datoteko s strani za prenos (Video vadnica)

V tem videu se boste naučili, kako prenesti primer projekta v F#. Video se začne s stranjo za prenos in konča z odprtim projektom. Naučili se boste, kako prenesti projekt in kaj storiti po tem. Video je dolg le 1 minuto, vendar je zelo koristen. Zahvaljujoč tej podrobnosti ne boste imeli težav pri sledenju korakom.

Video 1 - Kako prenesti in zagnati zgornji primer projekta (Video vadnica)

Spodnja primer kode je del vizualnega SendScheduledSms.sln Visual Studio Solution. Vizualna studio rešitev lahko vsebuje več projektov in več datotek. V tej rešitvi je samo en projekt: SendScheduledSms.fsproj, in ena datoteka: Program.fs.

Slika 3 - SendScheduledSms.sln

Kako uporabiti projekt za načrtovane SMS sporočila (Video vadnica)

V tem videu se boste naučili, kako uporabiti projekt za pošiljanje načrtovanih SMS sporočil. Video se bo začel z odpiranjem Ozeki SMS Gateway in vas popelje vse do preverjanja map

More information