Cum să trimiți SMS din F#
Cea mai simplă metodă de a trimite SMS 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 telefonul destinatar și va returna un răspuns HTTP 200 OK la cererea ta.
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 = "Bună, lume!") let api = new MessageApi(configuration) let result = api.Send(msg) printfn $"{result.ToString()}" 0
Codul sursă explicat în acest articol poate fi descărcat, utilizat și modificat gratuit.
Descarcă: SendSms.fs.zip (59.4Kb)
Fișierul SendSms.fs.zip conține biblioteca Ozeki.Libs.Rest, care îți oferă toate instrumentele necesare pentru a trimite și primi mesaje SMS. De asemenea, vei găsi proiectul SendSms î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.
Pentru a trimite SMS din F#:
- Instalează Ozeki SMS Gateway
- Conectează Ozeki SMS Gateway la rețeaua mobilă
- Trimite un SMS de test din interfața Ozeki
- Creează un utilizator API HTTP pentru SMS
- Pornește Visual Studio
- Creează o soluție numită SendSms.sln
- Adaugă un proiect consolă F#: SendSms.fsproj
- Introdu codul în Program.fs sau SendSms.fs
- Citește răspunsul HTTP
- Verifică jurnalele în gateway-ul SMS
Pentru a scrie primul tău program în F#:
- Configurează Visual Studio
- Descarcă fișierul SendSms.fs.zip
- Extrage fișierul .zip din folderul Descărcări
- Deschide fișierul SendSms.sln în Visual Studio
- Lansează aplicația Ozeki SMS Gateway
- Apasă pe utilizatorul HTTP în fila Utilizatori și aplicații
- Rulează SendSMS.fs în Visual Studio
- Verifică căsuța Trimise în Ozeki SMS Gateway
- Selectează conexiunea client SMPP pe pagina principală
- Bifează toate casetele de nivel Log în fila Avansat din meniul Configură
- Rulează din nou Program.fs în Visual Studio
- Găsește evenimentul dacă destinatarul a primit mesajul tău
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 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 API HTTP pentru SMS. Creează un utilizator cu numele de utilizator "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 tău F#.
URL API HTTP pentru a trimite SMS din F#Pentru a trimite SMS din F#, aplicația ta F# 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 calculator pe care 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
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 antet pentru tipul conținutului și un antet de Autorizare.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cerere HTTP pentru trimiterea SMS din F#
Pentru a trimite SMS-ul, aplicația ta F# va trimite o cerere HTTP similară cu cea de mai jos. Reține că această cerere conține o parte de antet HTTP și o parte de corp HTTP. Corpul HTTP este un șir de date codificat în 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: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": [] } ] }
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ă în JSON pentru a vă oferi detalii utile despre trimiterea mesajului.
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" } ] } }
Cum să trimiți SMS din F# (Tutorial video)
Acest videoclip vă arată cum să creați un nou proiect consolă .Net core în Visual Studio, cum să-l denumiți SendSms.sln. Odată ce soluția este creată, s-ar putea să observați că un SendSms.fsproj este adăugat la soluție, iar în mod implicit fișierul Program.cs este deschis. Puteți redenumi Program.fs în SendSms.fs dacă doriți. De asemenea, veți vedea în videoclip cum poate fi copiat codul exemplu de mai jos în fișierul Program.fs și cum poate fi compilat și executat.
SendSms.sln
Codul exemplu de mai jos face parte din Soluția Visual Studio SendSms.sln. O soluție Visual Studio poate conține mai multe proiecte și mai multe fișiere. În această soluție există doar două proiecte: SendSms.fsproj, Ozeki.Libs.Rest.csproj și un fișier: Program.fs.
Cum să verificați dacă SMS-ul a fost acceptat de utilizatorul HTTP
După ce SMS-ul a fost trimis, este o idee bună să verificați gateway-ul SMS, pentru a vedea ce a primit. Puteți verifica jurnalul deschizând detaliile utilizatorului HTTP din consola de management Ozeki SMS Gateway. Următorul videoclip vă arată ce să căutați.
Cum să verificați dacă SMS-ul a fost trimis către rețeaua mobilă
Pasul final în verificarea procedurii este să aruncați o privire asupra jurnalelor conexiunii la rețeaua mobilă. S-ar putea să fie nevoie să activați jurnalizarea în configurația conexiunii înainte de a trimite mesajul pentru a vedea jurnalele. Dacă jurnalizarea este activată, veți vedea numărul de telefon și textul mesajului pe care l-ați trimis.
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 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 de mai sus a prezentat pașii pentru trimiterea SMS-urilor în F#. Cu instrucțiunile furnizate, trimiterea mesajelor cu F# și Ozeki SMS Gateway este rapidă și simplă. Ozeki SMS Gateway oferă capabilități excelente de înregistrare, astfel încât erorile pot fi identificate ușor. Tu sau organizația ta puteți contacta clienții într-un mod rapid cu această soluție și, după cum s-a putut vedea, nu este necesar să fii expert în F#.
Pentru a continua studiul, vizitează pagina de tutoriale Ozeki, unde poți găsi mai multe informații despre lucrul cu F#, cum ar fi programarea SMS-urilor.
Acum singurul lucru pe care trebuie să-l faci este să descărci Ozeki SMS Gateway și să începi lucrul!
More information