Cum să programezi un SMS în F#

Cea mai simplă metodă de a trimite SMS din F# este utilizarea API-ului HTTP/Rest SMS integrat al Ozeki SMS Gateway. Când folosești acest API, vei trimite mesaje SMS prin trimiterea unei cereri HTTP Post către gateway-ul SMS. Cererea HTTP Post va conține un mesaj formatat în format json. Gateway-ul SMS va trimite acest SMS către numărul de telefon al destinatarului și va returna un răspuns HTTP 200 OK la cererea ta.

cum să trimiți sms în viitor f sharp
Figura 1 - Programare SMS pentru trimitere ulterioară în F#

Cod F# pentru trimiterea unui SMS programat pe mobil

Exemplul de cod F# pentru SMS de mai jos demonstrează cum poți trimite SMS folosind API-ul http rest sms al Ozeki SMS Gateway cu ajutorul bibliotecii F# Ozeki.Libs.Rest. Această bibliotecă este oferită gratuit și poți să o folosești și să o modifici în oricare dintre proiectele tale.

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 = "Bună, lume!",
        TimeToSend = DateTime.Parse("2021-06-07 11:44:00"))

    let api = new MessageApi(configuration)

    let result = api.Send(msg)

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

Cum să folosești exemplul F# pentru SMS:

Acest exemplu F# pentru SMS poate fi folosit în orice aplicație .NET sau .NET core. Pentru a-l folosi, trebuie să adaugi DLL-ul Ozeki.Libs.Rest ca referință în proiectul tău. După ce referința este adăugată, trebuie să incluzi directiva using Ozeki.Libs.Rest; în secțiunea de antet a codului sursă F#. Acest lucru îți va permite să folosești clasele oferite de biblioteca Ozeki.Libs.Rest. Poți folosi clasa Message pentru a crea SMS-ul. Poți folosi clasa MessageApi pentru a trimite SMS-ul către gateway-ul SMS. Gateway-ul SMS va transmite mesajul tău către rețeaua mobilă fie printr-o conexiune wireless fie prin Internet.

Descarcă SendScheduledSms.fs

Codul sursă explicat în acest articol poate fi descărcat, folosit și modificat gratuit.
Descarcă: SendScheduledSms.fs.zip (59.8Kb)

Ce conține fișierul SendScheduledSms.fs?

Fișierul SendScheduledSms.fs conține biblioteca Ozeki.Libs.Rest, care îți oferă toate instrumentele necesare pentru a trimite și primi mesaje SMS. Vei găsi de asemenea proiectul SendScheduledSms în arhivă, care conține codul exemplu pentru a-ți arăta cum să trimiți un SMS. Acest cod exemplu este listat mai jos.

Figura 2 - Ce conține SendScheduledSms.fs.zip

Cum să trimiți SMS din F# (Pași rapizi)

Pentru a trimite SMS din F#:

  1. Instalează Ozeki SMS Gateway
  2. Conectează Ozeki SMS Gateway la rețeaua mobilă
  3. Trimite un SMS test din interfața Ozeki
  4. Creează un utilizator HTTP sms api
  5. Pornește Visual Studio
  6. Creează un soluționar numit SendScheduledSms.sln
  7. Adaugă un proiect consolă F#: SendScheduledSms.fsproj
  8. Pune codul în Program.fs sau SendScheduledSms.fs
  9. Citește răspunsul HTTP
  10. Verifică jurnalele din gateway-ul SMS
Instalează Ozeki SMS Gateway și creează un utilizator HTTP API

Pentru a putea trimite SMS din F#, mai întâi trebuie să instalezi Ozeki SMS Gateway. Gateway-ul SMS poate fi instalat pe același calculator unde dezvolți codul F# în Visual Studio. După instalare, următorul pas este să conectezi Ozeki SMS Gateway la rețeaua mobilă. Poți trimite un SMS test din interfața Ozeki pentru a verifica dacă conexiunea ta la rețeaua mobilă funcționează. Ultimul pas pentru a-ți pregăti mediul este să creezi un utilizator HTTP sms api. Creează un utilizator cu numele "http_user" și parola "qwe123" pentru a face exemplul să funcționeze fără modificări.

După ce mediul este configurat, poți rula codul F#.

URL API HTTP pentru a trimite SMS din F#

Pentru a trimite SMS din F#, aplicația ta F# va trebui să trimită o cerere HTTP către gateway-ul SMS. URL-ul API este afișat mai jos. Reține că adresa IP (127.0.0.1) ar trebui să fie înlocuită cu adresa IP a gateway-ului tău SMS. Dacă Ozeki SMS Gateway este instalat pe același calculator unde rulează aplicația F# pentru SMS, aceasta poate fi 127.0.0.1. Dacă este instalat pe un calculator diferit, ar trebui să fie adresa IP a acelui calculator.

http://127.0.0.1:9509/api?action=rest
Autentificare HTTP pentru a trimite SMS din F#

Pentru a autentifica clientul F# pentru SMS, trebuie să trimiți numele de utilizator și parola într-un șir codificat base64 către server într-o cerere HTTP. Formatul folosit este: base64(nume_utilizator+":"+parolă). În C# poți folosi următorul cod pentru a face această codificare:

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

De exemplu, dacă codezi numele de utilizator 'http_user' și parola 'qwe123', vei obține următorul șir codificat base64: aHR0cF91c2VyOnF3ZTEyMw==. Pentru a trimite

Antet cerere HTTP pentru a trimite SMS din F#

Pentru a trimite mesajele SMS, trebuie să incluzi următoarele linii ca antete în cererea HTTP. Reține că includem un tip de conținut și un antet de autorizare.

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

Cerere HTTP pentru trimiterea SMS-ului programat din F#

Pentru a trimite SMS-ul, aplicația ta F# va trimite o cerere HTTP similară cu cea de mai jos. Rețineți că această cerere conține o parte de antet HTTP și o parte de corp HTTP. Corpul HTTP este un șir de date codificat JSON. Acesta conține numărul destinatarului și textul mesajului.

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": "Bună, lume!",
      "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": []
    }
  ]
}

Răspuns HTTP primit de exemplul F# sms

Odată ce gateway-ul SMS primește această cerere, va genera un răspuns HTTP. Răspunsul HTTP va conține un cod de stare, pentru a indica dacă cererea de trimitere SMS a fost reușită sau nu. De asemenea, va returna o structură codificată JSON pentru a vă oferi detalii utile despre trimiterea mesajului.

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": "Mesaje puse în coadă pentru livrare.",
  "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": "Bună, lume!",
        "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"
      }
    ]
  }
}

Exemplu F# sms: SendScheduledSms.sln



Cum să descărcați fișierul proiectului din pagina de descărcare (Tutorial video)

În acest videoclip, veți învăța cum să descărcați proiectul exemplu F#. Videoclipul începe cu pagina de descărcare și se termină cu proiectul deschis. Veți învăța cum să descărcați proiectul și ce să faceți după aceea. Videoclipul durează doar 1 minut, dar este foarte util. Datorită faptului că este atât de detaliat, nu veți avea probleme în a urma pașii.

Video 1 - Cum să descărcați și să rulați proiectul exemplu de mai sus (Tutorial video)

Codul exemplu de mai jos face parte din Soluția Visual Studio SendScheduledSms.sln. O soluție Visual Studio poate conține mai multe proiecte și mai multe fișiere. În această soluție există doar un proiect: SendScheduledSms.fsproj, și un fișier: Program.fs.

Figura 3 - SendScheduledSms.sln

Cum să utilizați proiectul SMS programat (Tutorial video)

În acest videoclip, veți învăța cum să utilizați proiectul pentru a trimite mesaje SMS programate. Videoclipul va începe cu deschiderea Ozeki SMS Gateway și vă va duce până la verificarea folderului de mesaje amânate. Videoclipul durează doar 1:26 și este foarte detaliat. Datorită acestui fapt, nu veți avea probleme în a urma tutorialul.

Video 2 - Cum să utilizați soluția Send-scheduled-SMS.fs (Tutorial video)

Rularea exemplului F# sms pe Windows

Când utilizați Windows pentru a rula acest exemplu SMS scris în F#, veți observa că obțineți o performanță ușor mai bună decât atunci când îl rulați pe Linux. Pentru a înțelege de ce se întâmplă acest lucru, trebuie să țineți cont de faptul că F# utilizează cadrul .NET pentru executarea codului. Acest lucru se datorează faptului că implementarea .NET pe Windows este optimizată pentru performanță, în timp ce mono, implementarea .NET pe Linux, mai are de recuperat în acest domeniu.

Concluzie

Articolul a explicat pașii de programare a SMS-urilor în F# cu ajutorul Ozeki SMS Gateway. Programarea SMS-urilor este un instrument foarte util dacă doriți să vă asigurați că mesajele evită orele aglomerate ale destinatarilor, astfel încât mesajele să nu fie ignorate sau uitate. Ozeki SMS Gateway permite înregistrarea mesajelor SMS într-o bază de date și oferă diverse capabilități de raportare pentru a furniza informații despre conexiunea SMS.

Nu vă opriți studiile aici, vizitați pagina de tutoriale Ozeki unde puteți citi mai multe despre subiecte precum ștergerea în F#.

Acum singurul lucru de făcut este să descărcați Ozeki SMS Gateway și să începeți lucrul!

More information