Cum să trimiți SMS din Delphi
Cea mai simplă metodă de a trimite SMS din Delphi 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.
Exemplul de cod SMS Delphi de mai jos demonstrează cum poți trimite SMS folosind API-ul HTTP REST SMS al Ozeki SMS Gateway cu ajutorul unității Delphi Ozeki.Libs.Rest. Această unitate este oferită gratuit și poți să o folosești și să o modifici în oricare dintre proiectele tale.
SendSms.delphiprogram SendSms; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, Ozeki.Libs.Rest in '../Ozeki.Libs.Rest/Ozeki.Libs.Rest.pas'; var configuration : Ozeki.Libs.Rest.Configuration; var msg : Ozeki.Libs.Rest.Message; var api : Ozeki.Libs.Rest.MessageApi; var result : MessageSendResult; 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'; msg := Ozeki.Libs.Rest.Message.Create; msg.ToAddress := '+36201111111'; msg.Text := 'Salut lume!'; api := Ozeki.Libs.Rest.MessageApi.Create(configuration); result := api.SendMessage(msg); Writeln(result.ToString()); 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 utiliza, trebuie să adaugi unitatea Ozeki.Libs.Rest.pas în proiectul tău. După ce unitatea este adăugată, trebuie să introduci directiva uses Ozeki.Libs.Rest in '../Ozeki.Libs.Rest/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ă SendSMS.delphi
Codul sursă explicat în acest articol poate fi descărcat, folosit și modificat gratuit.
Descarcă: SendSms.delphi.zip (11.8Kb)
Fișierul SendSms.delphi.zip conține unitatea 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 Delphi:
- Instalează un utilizator HTTP API
- Activează Log communication events în fila Advanced
- Configurează Embarcadero Delphi Studio
- Descarcă apoi extrage fișierul SendSms.delphi.zip
- Deschide fișierul SendSms.dproj în Delphi Studio făcând dublu clic pe el
- Lansează aplicația Ozeki SMS Gateway
- Rulează codul Delphi SendSms.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 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 grafică 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, Delphi-ul tău 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 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 o parte de antet HTTP și o parte de corp HTTP. Corpul HTTP este un șir de date codat JSON. Acesta conține numărul destinatarului și textul mesajului.
POST /api?action=sendmsg HTTP/1.0 Connection: keep-alive Content-Type: application/json Content-Length: 412 Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509 Accept: application/json User-Agent: Mozilla/3.0 (compatible; Indy Library) { "messages": [ { "message_id": "ae0d1fe5-7e93-4241-b31c-5b3ebf867c5b", "from_connection": "", "from_address": "", "from_station": "", "to_connection": "", "to_address": "+36201111111", "to_station": "", "text": "Hello world!", "create_date": "2021-07-27T14:22:12", "valid_until": "2021-08-03T14:22:12", "time_to_send": "2021-07-27T14:22:12", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true } ] }
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ă codată JSON pentru a vă oferi detalii utile despre trimiterea mesajului.
HTTP/1.1 200 OK Content-Type: application/json; charset=utf8 Last-Modified: Tue, 27 Jul 2021 06:58:42 GMT Server: 10/10.3.123 Microsoft-HTTPAPI/2.0 User-Agent: OZEKI 10.3.123 (myozeki.com) Date: Tue, 27 Jul 2021 12:22:12 GMT Connection: close { "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": "ae0d1fe5-7e93-4241-b31c-5b3ebf867c5b", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello world!", "create_date": "2021-07-27 14:22:12", "valid_until": "2021-08-03 14:22:12", "time_to_send": "2021-07-27 14:22:12", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
Presupunem că ați instalat deja Ozeki SMS Gateway și l-ați conectat la rețeaua mobilă. Pentru a putea trimite SMS către un telefon mobil din Delphi, trebuie să configurați un cont de utilizator HTTP API în Ozeki SMS Gateway.
Cum să trimiteți SMS din Delphi folosind API-ul SMS Delphi (Tutorial video)
Acest videoclip vă arată cum să descărcați fișierul SendSms.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 SendSms.delphi este plasat pe desktopul Windows. De asemenea, veți vedea că dăm dublu clic pe fișierul de proiect SendSms.dproj pentru a deschide proiectul.
Exemplu de SMS Delphi: SendSms.dprojÎn această soluție există un singur proiect: SendSms.dproj și două fișiere: SendSms.dpr și Ozeki.Libs.Rest.pas.
După ce SMS-ul a fost trimis, este o idee bună să verificați gateway-ul dvs. 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ă verifici dacă SMS-ul a fost trimis către rețeaua mobilă
Pasul final în verificarea procedurii este să analizezi jurnalele conexiunii la rețeaua mobilă. Poate fi necesar să activezi înregistrarea în configurația conexiunii înainte de a trimite mesajul pentru a vedea jurnalele. Dacă înregistrarea este activată, vei vedea numărul de telefon și textul mesajului pe care l-ai trimis.
Cum arată primirea unui mesaj SMS pe Android (Tutorial video)
În acest videoclip, îți vom arăta cum arată primirea unui mesaj SMS pe Android. Videoclipul durează doar 18 secunde, dar poți vedea întregul proces în el. Acesta va începe cu o pagină obișnuită de start Android. Vei vedea notificarea pentru SMS și aplicația Mesaje deschisă cu mesajul vizibil.
Rezumat
Acest articol ți-a arătat cea mai simplă metodă de a trimite SMS din Delphi. Dacă ai citit acest tutorial, știi cum să creezi un utilizator API SMS HTTP în Ozeki SMS Gateway pentru a putea trimite SMS din Delphi. Unul dintre numeroasele avantaje ale acestei soluții este că exemplul de SMS în Delphi poate fi folosit și modificat de tine în oricare dintre proiectele tale.
Poți găsi mai multe documente care oferă alte coduri de program Delphi, profită de fiecare oportunitate și studiază-le. Dacă dorești să folosești acest serviciu Ozeki SMS Gateway într-un cerc mai larg, consultă articolul Cum să descarci cea mai recentă unitate API SMS pentru Delphi de pe Github și află mai multe.
Descarcă acum Ozeki SMS Gateway și configurează sistemul!
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