Ako prijímať SMS v Delphi

Najjednoduchší spôsob, ako prijímať SMS z Delphi, je použiť vstavanú HTTP/Rest SMS API Ozeki SMS Gateway. Keď použijete toto API, budete odosielať SMS správy odoslaním HTTP POST požiadavky na SMS bránu. HTTP POST požiadavka bude obsahovať správu vo formáte JSON. SMS brána odošle túto SMS príjemcovi a vráti HTTP 200 OK odpoveď na vašu požiadavku.

ako prijímať sms v delphi
Obrázok 1 - Ako prijímať SMS v Delphi

Delphi kód na prijímanie SMS

Ukážka Delphi SMS kódu nižšie demonštruje, ako môžete odosielať SMS pomocou HTTP REST SMS API Ozeki SMS Gateway pomocou jednotky Ozeki.Libs.Rest v Delphi. Táto jednotka je poskytovaná bezplatne a môžete ju použiť a upraviť v ktoromkoľvek z vašich 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.
	

Ako použiť príklad Delphi SMS:

Tento príklad Delphi SMS môže byť použitý v akejkoľvek Delphi aplikácii. Na použitie je potrebné pridať jednotku Ozeki.Libs.Rest.pas do vášho projektu. Po pridaní jednotky musíte vložiť direktívu uses Ozeki.Libs.Rest in 'Ozeki.Libs.Rest.pas'; do hlavičkovej časti vášho Delphi zdrojového kódu. To vám umožní používať triedy poskytované jednotkou Ozeki.Libs.Rest. Môžete použiť triedu Message na vytvorenie SMS. Môžete použiť triedu MessageApi na odoslanie SMS na SMS bránu. SMS brána prepošle vašu správu do mobilnej siete buď prostredníctvom bezdrôtového pripojenia alebo cez internet.

Stiahnuť ReceiveSms.delphi

Zdrojový kód vysvetlený v tomto článku môže byť stiahnutý, použitý a upravený bezplatne.
Stiahnuť: ReceiveSms.delphi.zip (11.9Kb)

Čo obsahuje súbor ReceiveSms.delphi.zip?

Súbor ReceiveSms.delphi.zip obsahuje jednotku Ozeki.Libs.Rest, ktorá vám poskytuje všetky potrebné nástroje na odosielanie a prijímanie SMS správ. Nájdete tu aj projekt ReceiveSms, ktorý obsahuje ukážkový kód, ktorý vám ukáže, ako odoslať SMS. Tento ukážkový kód je uvedený nižšie.

prijímať sms delphi adresár
Obrázok 2 - Čo je vo vnútri ReceiveSms.delphi.zip

Ako odosielať SMS z Delphi (Jednoduché pokyny)

Na odoslanie SMS z Delphi:

  1. Nainštalujte používateľa HTTP API
  2. Povoľte Logovanie komunikačných udalostí na karte Pokročilé
  3. Nastavte Embarcadero Delphi Studio
  4. Stiahnite a rozbaľte súbor ReceiveSms.delphi.zip
  5. Otvorte súbor ReceiveSms.dproj v Delphi Studio dvojklikom naň
  6. Spustite aplikáciu Ozeki SMS Gateway
  7. Spustite Delphi kód ReceiveSms.dpr v Delphi Studio
  8. Skontrolujte logy, či bola SMS odoslaná
Nainštalujte Ozeki SMS Gateway a vytvorte používateľa HTTP API

Na odosielanie SMS z Delphi je potrebné najprv nainštalovať Ozeki SMS Gateway. SMS bránu je možné nainštalovať na rovnakom počítači, kde vyvíjate svoj Delphi kód v Visual Studio. Po inštalácii je ďalším krokom pripojenie Ozeki SMS Gateway k mobilnej sieti. Môžete odoslať testovaciu SMS z Ozeki GUI na overenie, či vaše mobilné pripojenie funguje. Posledným krokom pri príprave vášho prostredia je vytvorenie používateľa HTTP SMS API. Vytvorte používateľa s menom "http_user" a heslom "qwe123", aby príklad fungoval bez úprav.

Po nastavení prostredia môžete spustiť svoj Delphi kód.

HTTP API URL na odosielanie SMS z Delphi

Na odosielanie SMS z Delphi musí vaše Delphi odoslať HTTP požiadavku na SMS bránu. API URL je uvedené nižšie. Upozorňujeme, že IP adresa (127.0.0.1) by mala byť nahradená IP adresou vašej SMS brány. Ak je Ozeki SMS Gateway nainštalovaný na rovnakom počítači, kde beží Delphi SMS aplikácia, môže to byť 127.0.0.1. Ak je nainštalovaný na inom počítači, mala by to byť IP adresa toho počítača.

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

HTTP autentifikácia na odosielanie SMS z Delphi

Na autentifikáciu klienta SMS v Delphi je potrebné odoslať používateľské meno a heslo v reťazci zakódovanom do base64 na server v HTTP požiadavke. Používa sa formát: base64(používateľské meno+":"+heslo). V Delphi môžete na toto kódovanie použiť nasledujúci kód:

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

Napríklad, ak zakódujete používateľské meno 'http_user' a heslo 'qwe123', dostanete nasledujúci reťazec zakódovaný do base64: aHR0cF91c2VyOnF3ZTEyMw==. Na odoslanie

HTTP hlavička požiadavky na odoslanie SMS z Delphi

Na odoslanie SMS správ je potrebné zahrnúť nasledujúce riadky ako hlavičky do HTTP požiadavky. Upozorňujeme, že obsahujeme hlavičku typu obsahu a autorizačnú hlavičku.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
	
HTTP požiadavka na odoslanie SMS z Delphi

Na odoslanie SMS bude vaša aplikácia v Delphi odosielať HTTP požiadavku podobnú nižšie uvedenej. Upozorňujeme, že táto požiadavka obsahuje iba časť HTTP hlavičky, ktorá obsahuje všetky informácie potrebné na stiahnutie každej správy z konkrétneho priečinka.

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 odpoveď prijatá príkladom SMS v Delphi

Keď SMS brána prijme túto požiadavku, vygeneruje HTTP odpoveď. HTTP odpoveď bude obsahovať stavový kód, ktorý indikuje, či bola požiadavka na odoslanie SMS úspešná alebo nie. Taktiež vráti štruktúru zakódovanú v JSON, ktorá poskytne užitočné informácie o odoslaní správy.

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"
          }
        ]
      }
    ]
  }
}	
	
Ako odoslať SMS z Delphi pomocou Delphi SMS API (Video návod)

Toto video vám ukáže, ako stiahnuť súbor ReceiveSms.delphi.zip z tejto stránky a ako stiahnuť jeho obsah v Delphi štúdiu. Ak sledujete video, všimnete si, že obsah ReceiveSms.delphi zip je umiestnený na pracovnej ploche Windows. Uvidíte tiež, že dvakrát klikneme na súbor projektu ReceiveSms.dproj, aby sme otvorili projekt.

Príklad SMS v Delphi: ReceiveSms.dproj

V tomto riešení je iba jeden projekt: ReceiveSms.dproj a dva súbory: ReceiveSms.dpr a Ozeki.Libs.Rest.pas.

Obrázok 2 - ReceiveSms.dproj

Ako skontrolovať, že SMS bola prijatá HTTP používateľom

Po odoslaní SMS je dobré skontrolovať svoju SMS bránu, aby ste videli, čo prijala. Protokol môžete skontrolovať otvorením podrobností HTTP používateľa v konzole na správu Ozeki SMS Gateway. Nasledujúce video vám ukáže, čo hľadať.

Video 2 - Odosielanie SMS pomocou vyššie uvedeného Delphi kódu (Video návod)

Záverečné myšlienky

Podľa tohto návodu ste sa naučili, ako používať HTTP SMS API používateľa v Ozeki SMS Gateway na prijímanie SMS z Delphi. Tento príklad SMS v Delphi je jednoduchý a ľahko sa nastavuje, bude kompatibilný s akýmkoľvek typom Delphi aplikácie, ktorú máte. Táto služba môže zvýšiť efektivitu vašej organizácie, pretože umožňuje rýchle a plynulé doručovanie dôležitých informácií.

Možno budete potrebovať Delphi SMS API s ďalšími funkciami, takže tu neprestávajte čítať. Nájdite viac príležitostí v článku Ako stiahnuť najnovšiu jednotku Delphi SMS API z GitHubu.

Stiahnite si Ozeki SMS Gateway a rozvíjajte svoj biznis už teraz!

More information