Cum să primești un SMS în Delphi
Cea mai simplă metodă de a primi SMS din Delphi este utilizarea API-ului HTTP/Rest SMS integrat 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.
Exemplul de cod SMS Delphi de mai jos demonstrează cum poți trimite SMS folosind API-ul HTTP rest SMS al Ozeki SMS Gateway utilizând unitatea Delphi Ozeki.Libs.Rest. Această unitate este oferită gratuit și o poți folosi și modifica în oricare dintre proiectele tale.
ReceiveSms.delphiprogram ReceiveSms; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, Ozeki.Libs.Rest in 'Ozeki.Libs.Rest.pas'; var configuration : Ozeki.Libs.Rest.Configuration; var api : Ozeki.Libs.Rest.MessageApi; var result : MessageReceiveResult; var message : Ozeki.Libs.Rest.Message; var read : string; begin try configuration := Ozeki.Libs.Rest.Configuration.Create; configuration.Username := 'http_user'; configuration.Password := 'qwe123'; configuration.ApiUrl := 'http://127.0.0.1:9509/api'; api := Ozeki.Libs.Rest.MessageApi.Create(configuration); result := api.DownloadIncoming; Writeln(result.ToString); for message in result.Messages do begin Writeln(message.ToString); end; Readln(read); except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end.
Cum să folosești exemplul de SMS Delphi:
Acest exemplu de SMS Delphi poate fi folosit în orice aplicație Delphi. Pentru a-l folosi, trebuie să adaugi unitatea Ozeki.Libs.Rest.pas în proiectul tău. După ce unitatea este adăugată, trebuie să incluzi directiva uses Ozeki.Libs.Rest in 'Ozeki.Libs.Rest.pas'; în secțiunea de antet a codului sursă Delphi. Acest lucru îți va permite să folosești clasele furnizate de unitatea 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 fără fir, fie prin Internet.
Descarcă ReceiveSms.delphi
Codul sursă explicat în acest articol poate fi descărcat, folosit și modificat gratuit.
Descarcă: ReceiveSms.delphi.zip (11.9Kb)
Fișierul ReceiveSms.delphi.zip conține unitatea Ozeki.Libs.Rest, care îți oferă toate instrumentele necesare pentru a trimite și primi mesaje SMS. Vei găsi de asemenea proiectul ReceiveSms î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 Delphi:
- Instalează un utilizator HTTP API
- Activează Log communication events în fila Advanced
- Configurează Embarcadero Delphi Studio
- Descarcă apoi extrage fișierul ReceiveSms.delphi.zip
- Deschide fișierul ReceiveSms.dproj în Delphi Studio făcând dublu clic pe el
- Lansează aplicația Ozeki SMS Gateway
- Rulează codul Delphi ReceiveSms.dpr în Delphi Studio
- Verifică jurnalele pentru a vedea dacă SMS-ul a fost trimis
Pentru a putea trimite SMS din Delphi, 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 Delphi î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 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 Delphi.
URL API HTTP pentru a trimite SMS din DelphiPentru a trimite SMS din Delphi, aplicația ta Delphi 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 ta Delphi 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 Delphi
Pentru a autentifica clientul SMS Delphi, trebuie să trimiteți numele de utilizator și parola într-un șir codat base64 către server într-o cerere HTTP. Formatul utilizat este: base64(nume de utilizator+":"+parolă). În Delphi puteți utiliza următorul cod pentru a face această codare:
var usernamePassword := username + ':' + password; var Encoder := TBase64Encoding.Create(); var usernamePasswordEncoded := Encoder.Encode(usernamePassword); result := Format('Basic %s', [usernamePasswordEncoded]);
De exemplu, dacă codificați numele de utilizator 'http_user' și parola 'qwe123', veți obține următorul șir codat base64: aHR0cF91c2VyOnF3ZTEyMw==. Pentru a trimite
Antetul cererii HTTP pentru a trimite SMS din DelphiPentru a trimite mesajele SMS, trebuie să includeți următoarele linii ca anteturi î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==
Pentru a trimite SMS-ul, aplicația dvs. Delphi va trimite o cerere HTTP similară cu cea de mai jos. Rețineți că această cerere conține doar o parte de antet HTTP, care conține toate informațiile necesare pentru a descărca fiecare mesaj dintr-un anumit folder.
GET /api?action=receivemsg&folder=inbox HTTP/1.1 Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509 Accept: application/json User-Agent: Mozilla/3.0 (compatible; Indy Library)
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 Transfer-Encoding: chunked Content-Type: application/json; charset=utf8 Last-Modified: Tue, 27 Jul 2021 15:49:18 GMT Server: 10/10.3.123 Microsoft-HTTPAPI/2.0 User-Agent: OZEKI 10.3.123 (myozeki.com) Date: Tue, 27 Jul 2021 14:10:33 GMT { "http_code": 200, "response_code": "SUCCESS", "response_msg": "", "data": { "folder": "inbox", "limit": "1000", "data": [ { "message_id": "be5e98cf-2bcb-d8dc-94ae-aa909504afe7", "from_connection": "http_user@localhost", "from_address": "+36201111111", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Salut lume 1", "create_date": "2021-07-27 16:06:02", "valid_until": "2021-08-03 16:06:02", "time_to_send": "2021-07-27 16:06:02", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] }, { "message_id": "466d737f-68d5-f64d-84d8-ac0a3f950543", "from_connection": "http_user@localhost", "from_address": "+36202222222", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Salut lume 2", "create_date": "2021-07-27 16:06:02", "valid_until": "2021-08-03 16:06:02", "time_to_send": "2021-07-27 16:06:02", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] }, { "message_id": "36069eca-95c1-bced-8876-ece0dcd74acd", "from_connection": "http_user@localhost", "from_address": "+36203333333", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Salut lume 3", "create_date": "2021-07-27 16:06:02", "valid_until": "2021-08-03 16:06:02", "time_to_send": "2021-07-27 16:06:02", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] } ] } }
Acest videoclip vă arată cum să descărcați fișierul ReceiveSms.delphi.zip de pe această pagină și cum să descărcați conținutul acestuia în Delphi studio. Dacă urmăriți videoclipul, veți observa că conținutul arhivei ReceiveSms.delphi este plasat pe desktopul Windows. De asemenea, veți vedea că dăm dublu clic pe fișierul de proiect ReceiveSms.dproj pentru a deschide proiectul.
Exemplu SMS Delphi: ReceiveSms.dprojÎn această soluție există un singur proiect: ReceiveSms.dproj și două fișiere: ReceiveSms.dpr și Ozeki.Libs.Rest.pas.
Cum să verifici dacă SMS-ul a fost acceptat de utilizatorul HTTP
După ce SMS-ul a fost trimis, este bine să verifici gateway-ul tău SMS, pentru a vedea ce a primit. Poți verifica jurnalul deschizând detaliile utilizatorului HTTP din consola de management Ozeki SMS Gateway. Următorul videoclip îți arată ce să cauți.
Gânduri finale
Urmând acest tutorial, ai învățat cum să folosești utilizatorul HTTP SMS API în Ozeki SMS Gateway pentru a primi SMS din Delphi. Acest exemplu de SMS în Delphi este simplu și ușor de configurat, va fi compatibil cu orice tip de aplicație Delphi pe care o ai. Acest serviciu poate face organizația ta mai eficientă, deoarece îți permite să transmiți informații valoroase rapid și fără probleme.
Este posibil să ai nevoie de un API SMS pentru Delphi cu alte funcționalități, așa că nu te opri aici. Descoperă mai multe oportunități în articolul Cum să descarci cea mai recentă unitate Delphi SMS API de pe GitHub.
Descarcă Ozeki SMS Gateway și dezvoltă-ți afacerea acum!
More information
- Delphi send SMS with the HTTP rest API (code sample)
- Delphi send multiple SMS with the HTTP rest API (code sample)
- Delphi schedule SMS with the HTTP rest API (code sample)
- Delphi receive SMS with the HTTP rest API (code sample)
- Delphi delete SMS with the HTTP rest API (code sample)
- How to download the latest Delphi SMS API unit from Github