Cum să trimiți mai multe SMS-uri din F#

Cea mai simplă metodă de a trimite SMS-uri din F# este utilizarea API-ului HTTP/Rest SMS încorporat al Ozeki SMS Gateway. Când folosești acest API, vei trimite mesaje SMS prin efectuarea 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.

trimite mai multe sms-uri din f
Figura 1 - Trimite mai multe SMS-uri din F#

Cod F# pentru a trimite mai multe SMS-uri 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 Ozeki.Libs.Rest pentru F#. 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 msg1 = new Message(
        ToAddress = "+36201111111", 
        Text = "Bună, Lume 1")

    let msg2 = new Message(
        ToAddress = "+36202222222", 
        Text = "Bună, Lume 2")

    let msg3 = new Message(
        ToAddress = "+36203333333", 
        Text = "Bună, Lume 3")

    let messages = [msg1; msg2; msg3]

    let api = new MessageApi(configuration)

    let result = api.Send(messages)

    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 la proiect 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ă SendMultipleSms.fs

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

Ce conține fișierul SendMultipleSms.fs?

Fișierul SendMultipleSms.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 SendMultipleSms în arhiva zip, care conține codul exemplu pentru a-ți arăta cum să trimiți mai multe mesaje SMS simultan. Acest cod exemplu este listat mai jos.

Figura 2 - Ce conține SendMultipleSms.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 de test din interfața Ozeki
  4. Creează un utilizator pentru API-ul HTTP SMS
  5. Pornește Visual Studio
  6. Creează un soluție numită SendMultipleSms.sln
  7. Adaugă un proiect consolă F#: SendMultipleSms.fsproj
  8. Introdu codul în Program.cs sau SendMultipleSms.fs
  9. Citește răspunsul HTTP
  10. Verifică jurnalele din gateway-ul SMS
Cum să îți scrii primul program în F# (Pași rapizi)

Pentru a-ți scrie primul program în F#:

  1. Configurează Visual Studio
  2. Descarcă fișierul SendMultipleSms.fs.zip
  3. Extrage fișierul .zip din folderul Descărcări
  4. Deschide fișierul SendMultipleSms.sln în Visual Studio
  5. Lansează aplicația Ozeki SMS Gateway
  6. Apasă pe utilizatorul HTTP în fila Utilizatori și aplicații
  7. Rulează Program.fs în Visual Studio
  8. Verifică căsuța Trimise în Ozeki SMS Gateway
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 computer pe care îți 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 de 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 pentru API-ul HTTP SMS. Creează un utilizator cu numele de utilizator "http_user" și parola "qwe123" pentru ca exemplul să funcționeze fără modificări.

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

URL-ul API HTTP pentru a trimite SMS din F#

Pentru a trimite SMS din F#, aplicația ta C# va trebui să efectueze 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 computer pe care rulează aplicația F# pentru SMS, aceasta poate fi 127.0.0.1. Dacă este instalat pe un computer diferit, ar trebui să fie adresa IP a acelui computer.

http://127.0.0.1:9509/api?action=rest

Autentificare HTTP pentru a trimite SMS din F#

Pentru a autentifica clientul SMS în F#, trebuie să trimiteți numele de utilizator și parola într-un șir codificat base64 către server într-o cerere HTTP. Formatul utilizat este: base64(nume_utilizator+":"+parolă). În C# puteți utiliza 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ă codificați numele de utilizator 'http_user' și parola 'qwe123', veți obține următorul șir codificat base64: aHR0cF91c2VyOnF3ZTEyMw==. Pentru a trimite

Antetul cererii HTTP pentru a trimite SMS din F#

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

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cererea HTTP pentru a trimite SMS din F#

Pentru a trimite SMS-ul, aplicația dvs. 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.

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": []
    }
  ]
}
Răspunsul 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 a SMS-ului 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": "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"
      }
    ]
  }
}
Exemplu F# SMS: SendMultipleSms.sln

Cum să descărcați și să deschideți proiectul (Tutorial video)

În acest videoclip, veți învăța cum să descărcați proiectul exemplu în F#. Videoclipul începe cu pagina de descărcare și se încheie 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 și este foarte detaliat. Nu veți avea probleme în a urmări pașii. Veți găsi linkul de descărcare pe pagina de tutorial.

Video 1 - Cum să descărcați și să deschideți soluția de mai sus (Tutorial video)

Codul exemplu de mai jos face parte din Soluția Visual Studio SendMultipleSms.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: SendMultipleSms.fsproj, și un fișier: Program.fs.

Figura 3 - SendMultipleSms.sln

Cum să utilizați proiectul (Tutorial video)

În acest videoclip, veți învăța cum să utilizați proiectul pentru a trimite mai multe SMS-uri odată cu ajutorul F#. Videoclipul va începe cu deschiderea Ozeki SMS Gateway și vă va conduce până la obținerea folderului de mesaje trimise cu mai multe mesaje. Veți învăța cum să rulați codul și cum să verificați folderul de mesaje trimise. Videoclipul merită vizionat deoarece este ușor de urmărit și detaliat, dar durează doar 1 minut.

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

Rularea exemplului de SMS în F# pe Windows

Când utilizați Windows pentru a rula acest exemplu de 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.

Rezumat

După cum s-a putut vedea în articolul de mai sus, trimiterea mai multor SMS-uri în F# folosind Ozeki SMS Gateway este foarte simplă. Această soluție vă permite să contactați mai mulți clienți cu un singur cod, economisind timp și costuri. Este important de reținut că Ozeki SMS Gateway rulează într-un mediu pe care îl controlați, astfel încât datele și lista de contacte sunt în siguranță. Dacă pașii au fost urmați cu atenție, mesajele cu clienții pot fi trimise fără nicio complicație.

Continuați călătoria de învățare pe pagina de tutoriale Ozeki, unde găsiți mai multe despre subiecte precum programarea SMS-urilor și receptionarea în F#.

Următorul lucru pe care trebuie să-l faceți acum este să descărcați Ozeki SMS Gateway și să începeți să lucrați!

More information