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

Cea mai simplă metodă de a trimite SMS-uri 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 numărul de telefon al destinatarului și va returna un răspuns HTTP 200 OK la cererea ta.

cum să trimiți mai multe sms-uri din delphi
Figura 1 - Cum să trimiți mai multe SMS-uri din Delphi

Cod Delphi pentru trimiterea SMS-urilor pe mobil

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.

SendMultipleSms.delphi
program SendMultipleSms;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils,
  Ozeki.Libs.Rest in 'Ozeki.Libs.Rest.pas';

var configuration : Ozeki.Libs.Rest.Configuration;
var msg1, msg2, msg3 : Ozeki.Libs.Rest.Message;
var api : Ozeki.Libs.Rest.MessageApi;
var result : MessageSendResults;
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';

    msg1 := Ozeki.Libs.Rest.Message.Create;
    msg1.ToAddress := '+36201111111';
    msg1.Text := 'Salut lume 1';

    msg2 := Ozeki.Libs.Rest.Message.Create;
    msg2.ToAddress := '+36202222222';
    msg2.Text := 'Salut lume 2';

    msg3 := Ozeki.Libs.Rest.Message.Create;
    msg3.ToAddress := '+36203333333';
    msg3.Text := 'Salut lume 3';

    api := Ozeki.Libs.Rest.MessageApi.Create(configuration);

    result := api.SendMessages([ msg1, msg2, msg3 ]);

    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 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 wireless fie prin Internet.

Descarcă SendMultipleSms.delphi

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

Ce conține fișierul SendMultipleSms.delphi.zip?

Fișierul SendMultipleSms.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 SendMultipleSms î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.

trimite mai multe sms-uri delphi director
Figura 2 - Ce conține SendMultipleSms.delphi.zip

Cum să trimiți SMS din Delphi (Ghid simplu)

Pentru a trimite SMS din Delphi:

  1. Instalează un utilizator HTTP API
  2. Activează Log communication events în fila Advanced
  3. Configurează Embarcadero Delphi Studio
  4. Descarcă apoi extrage fișierul SendMultipleSms.delphi.zip
  5. Deschide fișierul SendMultipleSms.dproj în Delphi Studio făcând dublu clic pe el
  6. Lansează aplicația Ozeki SMS Gateway
  7. Rulează codul Delphi SendMultipleSms.dpr în Delphi Studio
  8. Verifică jurnalele pentru a vedea dacă SMS-ul a fost trimis
Instalează Ozeki SMS Gateway și creează un utilizator HTTP API

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 unde dezvolți codul tău 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 Delphi

Pentru 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 unde 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_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 Delphi

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 Delphi

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 numerele destinatarilor și textele mesajelor pe care dorim să le trimitem.

POST /api?action=sendmsg HTTP/1.0
Connection: keep-alive
Content-Type: application/json
Content-Length: 1211
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
Accept: application/json
User-Agent: Mozilla/3.0 (compatible; Indy Library)

{
	"messages": [
		{
			"message_id": "b984812c-6af0-47ac-83e6-c162b1743272",
			"from_connection": "",
			"from_address": "",
			"from_station": "",
			"to_connection": "",
			"to_address": "+36201111111",
			"to_station":"",
			"text":" Hello world 1",
			"create_date": "2021-07-27T14:59:43",
			"valid_until": "2021-08-03T14:59:43",
			"time_to_send": "2021-07-27T14:59:43",
			"submit_report_requested": true,
			"delivery_report_requested": true,
			"view_report_requested": true
		},
		{
			"message_id":"cccb9fc0-820c-47e0-9f8d-8a29f2f8dce8",
			"from_connection": "",
			"from_address": "",
			"from_station": "",
			"to_connection": "",
			"to_address": "+36202222222",
			"to_station": "",
			"text": "Hello world 2",
			"create_date": "2021-07-27T14:59:43",
			"valid_until": "2021-08-03T14:59:43",
			"time_to_send": "2021-07-27T14:59:43",
			"submit_report_requested": true,
			"delivery_report_requested": true,
			"view_report_requested": true
		},
		{
			"message_id": "395197a7-14bf-484b-97bc-ef25056b1669",
			"from_connection": "",
			"from_address": "",
			"from_station": "",
			"to_connection": "",
			"to_address": "+36203333333",
			"to_station": "",
			"text": "Hello world 3",
			"create_date": "2021-07-27T14:59:43",
			"valid_until": "2021-08-03T14:59:43",
			"time_to_send": "2021-07-27T14:59:43",
			"submit_report_requested": true,
			"delivery_report_requested": true,
			"view_report_requested": true
		}
	]
}
	
Răspunsul HTTP primit de exemplul de SMS Delphi

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 mesajelor.

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf8
Last-Modified: Tue, 27 Jul 2021 14:31:15 GMT
Server: 10/10.3.123 Microsoft-HTTPAPI/2.0
User-Agent: OZEKI 10.3.123 (myozeki.com)
Date: Tue, 27 Jul 2021 12:59:42 GMT
Connection: close

{
  "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": "b984812c-6af0-47ac-83e6-c162b1743272",
        "from_station": "%",
        "to_address": "+36201111111",
        "to_station": "%",
        "text": "Hello world 1",
        "create_date": "2021-07-27 14:59:43",
        "valid_until": "2021-08-03 14:59:43",
        "time_to_send": "2021-07-27 14:59:43",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      },
      {
        "message_id": "cccb9fc0-820c-47e0-9f8d-8a29f2f8dce8",
        "from_station": "%",
        "to_address": "+36202222222",
        "to_station": "%",
        "text": "Hello world 2",
        "create_date": "2021-07-27 14:59:43",
        "valid_until": "2021-08-03 14:59:43",
        "time_to_send": "2021-07-27 14:59:43",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      },
      {
        "message_id": "395197a7-14bf-484b-97bc-ef25056b1669",
        "from_station": "%",
        "to_address": "+36203333333",
        "to_station": "%",
        "text": "Hello world 3",
        "create_date": "2021-07-27 14:59:43",
        "valid_until": "2021-08-03 14:59:43",
        "time_to_send": "2021-07-27 14:59:43",
        "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 Delphi folosind API-ul SMS Delphi (Tutorial video)

Acest videoclip vă arată cum să descărcați fișierul SendMultipleSms.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 SendMultipleSms.delphi este plasat pe desktop-ul Windows. De asemenea, veți vedea că dăm dublu clic pe fișierul de proiect SendMultipleSms.dproj pentru a deschide proiectul.

Video 1 - Cum să descarci și să rulezi proiectul exemplu (Tutorial video)

Exemplu SMS în Delphi: SendMultipleSms.dproj

În această soluție există un singur proiect: SendMultipleSms.dproj și două fișiere: SendMultipleSms.dpr și Ozeki.Libs.Rest.pas.

Figura 3 - SendMultipleSms.dproj

Cum să verifici dacă SMS-ul a fost acceptat de utilizatorul HTTP

După ce SMS-ul a fost trimis, este o idee bună 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.

Video 2 - Trimitere SMS cu codul Delphi de mai sus (Tutorial video)

Rezumat

După ce ai citit această descriere despre trimiterea de SMS-uri multiple din Delphi, vei ști cum să pregătești un utilizator HTTP API în Ozeki SMS Gateway pentru această soluție. Folosirea acestui sistem te ajută să controlezi costurile și să ții evidența mesajelor. Mesajele SMS primite și evenimentele de livrare vor fi prezentate sub formă de evenimente, iar erorile vor fi gestionate corespunzător.

Nu te opri aici, există multe articole pe pagina Ozeki din care poți învăța. Continuă cu următorul tutorial Delphi despre Cum să programezi un SMS.

Descarcă acum Ozeki SMS Gateway și folosește-l pentru a încerca ceea ce ai învățat!

More information