Kako prejeti SMS v Delphi

Najenostavnejši način za prejemanje SMS-ov iz Delphi je uporaba vgrajenega HTTP/Rest SMS API-ja Ozeki SMS Gateway. Ko uporabljate ta API, boste pošiljali SMS sporočila z izdajo HTTP Post zahteve na SMS gateway. HTTP Post zahteva bo vsebovala sporočilo v formatu json. SMS gateway bo poslal ta SMS prejemniku in vrnil HTTP 200 OK odgovor na vašo zahtevo.

kako prejeti sms v delphi
Slika 1 - Kako prejeti SMS v Delphi

Delphi koda za prejemanje sms

Spodnji Delphi sms koda primer prikazuje, kako lahko pošiljate SMS z uporabo http rest sms api Ozeki SMS Gateway z uporabo enote Delphi Ozeki.Libs.Rest. Ta enota vam je na voljo brezplačno in jo lahko uporabljate in spreminjate v katerem koli od vaših projektov.

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.
	

Kako uporabiti Delphi sms primer:

Ta Delphi sms primer se lahko uporablja v kateri koli Delphi aplikaciji. Za uporabo morate dodati enoto Ozeki.Libs.Rest.pas v vaš projekt. Po dodajanju enote morate v glavo vaše Delphi izvorne kode dodati direktivo uses Ozeki.Libs.Rest in 'Ozeki.Libs.Rest.pas';. To vam bo omogočilo uporabo razredov, ki jih ponuja enota Ozeki.Libs.Rest. Razred Message lahko uporabite za ustvarjanje SMS. Razred MessageApi lahko uporabite za pošiljanje SMS-a na SMS gateway. SMS gateway bo vaše sporočilo posredoval v mobilno omrežje prek brezžične povezave ali prek interneta.

Prenesite ReceiveSms.delphi

Izvorna koda, razložena v tem članku, je na voljo za brezplačen prenos in uporabo.
Prenos: ReceiveSms.delphi.zip (11.9Kb)

Kaj je v datoteki ReceiveSms.delphi.zip?

Datoteka ReceiveSms.delphi.zip vsebuje enoto Ozeki.Libs.Rest, ki vam ponuja vsa orodja, potrebna za pošiljanje in prejemanje SMS sporočil. V zip datoteki boste našli tudi projekt ReceiveSms, ki vsebuje primer kode, ki prikazuje kako poslati SMS. Ta primer kode je naveden spodaj.

prejem sms delphi mapa
Slika 2 - Kaj je v ReceiveSms.delphi.zip

Kako poslati SMS iz Delphi (Preprosta navodila)

Za pošiljanje SMS iz Delphi:

  1. Namestite uporabnika HTTP API
  2. Omogočite beleženje komunikacijskih dogodkov na zavihku Napredno
  3. Nastavite Embarcadero Delphi Studio
  4. Prenesite in razširite datoteko ReceiveSms.delphi.zip
  5. Odprite datoteko ReceiveSms.dproj v Delphi Studio z dvojnim klikom nanjo
  6. Zaženite aplikacijo Ozeki SMS Gateway
  7. Zaženite Delphi kodo ReceiveSms.dpr v Delphi Studio
  8. Preverite dnevnike, da vidite, ali je bil SMS poslan
Namestite Ozeki SMS Gateway in ustvarite uporabnika HTTP API

Da lahko pošiljate SMS iz Delphi, morate najprej namestiti Ozeki SMS Gateway. SMS gateway lahko namestite na isti računalnik, kjer razvijate svojo Delphi kodo v Visual studiu. Po namestitvi je naslednji korak povezovanje Ozeki SMS Gateway z mobilnim omrežjem. Lahko pošljete testni sms iz Ozeki GUI, da preverite, ali vaša mobilna omrežna povezava deluje. Končni korak za pripravo vašega okolja je ustvarjanje uporabnika HTTP sms api. Ustvarite uporabnika z uporabniškim imenom "http_user" in geslom "qwe123", da primer deluje brez sprememb.

Ko je okolje nastavljeno, lahko zaženete svojo Delphi kodo.

HTTP API url za pošiljanje sms iz Delphi

Za pošiljanje SMS iz Delphi bo vaš Delphi moral izdati HTTP zahtevo na SMS gateway. API url je prikazan spodaj. Upoštevajte, da je treba IP naslov (127.0.0.1) zamenjati z IP naslovom vašega SMS gatewaya. Če je Ozeki SMS Gateway nameščen na istem računalniku, kjer teče Delphi sms aplikacija, je to lahko 127.0.0.1. Če je nameščen na drugem računalniku, mora biti to IP naslov tega računalnika.

http://127.0.0.1:9509/api?action=rest
	

HTTP avtentikacija za pošiljanje SMS iz Delphija

Za avtentikacijo odjemalca SMS v Delphi morate uporabniško ime in geslo poslati v nizu, kodiranem z base64, na strežnik v zahtevi HTTP. Uporabljena oblika je: base64(uporabniško_ime+":"+geslo). V Delphi lahko za to kodiranje uporabite naslednjo kodo:

var usernamePassword := username + ':' + password;
var Encoder := TBase64Encoding.Create();
var usernamePasswordEncoded := Encoder.Encode(usernamePassword);
result := Format('Basic %s', [usernamePasswordEncoded]);
	

Na primer, če kodirate uporabniško ime 'http_user' in geslo 'qwe123', boste prejeli naslednji niz, kodiran z base64: aHR0cF91c2VyOnF3ZTEyMw==. Za pošiljanje

HTTP glava zahteve za pošiljanje SMS iz Delphija

Za pošiljanje SMS sporočil morate vključiti naslednje vrstice kot glave v zahtevo HTTP. Upoštevajte, da vključujemo vrsto vsebine in glavo za avtorizacijo.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
	
HTTP zahteva za pošiljanje SMS iz Delphija

Za oddajo SMS bo vaša aplikacija Delphi poslala HTTP zahtevo, podobno spodnji. Upoštevajte, da ta zahteva vsebuje samo del glave HTTP, ki vsebuje vse informacije, potrebne za prenos vsakega posameznega sporočila iz določene mape.

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)
	
HTTP odgovor, prejet v primeru SMS v Delphi

Ko prehodnica SMS prejme to zahtevo, bo ustvarila odgovor HTTP. Odgovor HTTP bo vseboval statusno kodo, ki označuje, ali je bila zahteva za oddajo SMS uspešna ali ne. Prav tako bo vrnil strukturo, kodirano v JSON, ki vam bo zagotovila koristne podrobnosti o oddaji sporočila.

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": "Hello world 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": "Hello world 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": "Hello world 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"
          }
        ]
      }
    ]
  }
}	
	
Kako poslati SMS iz Delphija z uporabo API-ja za SMS v Delphi (Video vadnica)

Ta video prikazuje, kako prenesti datoteko ReceiveSms.delphi.zip s te strani in kako prenesti njeno vsebino v Delphi studio. Če si ogledate video, boste opazili, da je vsebina ReceiveSms.delphi zip postavljena na namizje Windows. Prav tako boste videli, da dvokliknemo na projektno datoteko ReceiveSms.dproj, da odpremo projekt.

Primer SMS v Delphi: ReceiveSms.dproj

V tej rešitvi je samo en projekt: ReceiveSms.dproj in dve datoteki: ReceiveSms.dpr in Ozeki.Libs.Rest.pas.

Slika 2 - ReceiveSms.dproj

Kako preveriti, ali je SMS sprejel HTTP uporabnik

Po oddaji SMS je priporočljivo preveriti vaš SMS prehod, da vidite, kaj je prejel. Dnevnik lahko preverite tako, da odprete podrobnosti HTTP uporabnika v upravljalski konzoli Ozeki SMS Gateway. Naslednji video vam pokaže, kaj morate iskati.

Video 2 - Pošiljanje SMS z zgornjo Delphi kodo (Video vadnica)

Zaključne misli

S sledenjem tej vadnici ste se naučili, kako uporabljati HTTP SMS API uporabnika v Ozeki SMS Gateway za prejemanje SMS iz Delphi. Ta primer Delphi SMS je preprost in enostaven za nastavitev, združljiv bo s katero koli vrsto Delphi aplikacije, ki jo imate. Ta storitev lahko naredi vašo organizacijo bolj učinkovito, saj vam omogoča hitro in nemoteno dostavo pomembnih informacij.

Morda boste potrebovali Delphi SMS API z drugimi funkcionalnostmi, zato ne nehajte brati tukaj. Odkrijte več priložnosti v članku Kako prenesti najnovejšo Delphi SMS API enoto z GitHub.

Prenesite Ozeki SMS Gateway in razvijte svoje poslovanje zdaj!

More information