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.

cum să primești un sms în delphi
Figura 1 - Cum să primești un SMS în Delphi

Cod Delphi pentru a primi sms

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.delphi
program 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)

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

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.

director receive sms delphi
Figura 2 - Ce conține ReceiveSms.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 ReceiveSms.delphi.zip
  5. Deschide fișierul ReceiveSms.dproj în Delphi Studio făcând dublu clic pe el
  6. Lansează aplicația Ozeki SMS Gateway
  7. Rulează codul Delphi ReceiveSms.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 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 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 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 Delphi

Pentru 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==
	
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 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)
	
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ă 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"
          }
        ]
      }
    ]
  }
}	
	
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 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.

Figura 2 - ReceiveSms.dproj

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.

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

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