Ako poslať SMS z Delphi

Najjednoduchší spôsob, ako poslať SMS z Delphi, je použiť vstavanú HTTP/Rest SMS API Ozeki SMS Gateway. Keď použijete toto API, budete posielať 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 následne odošle túto SMS na príjemcove telefónne číslo a vráti HTTP 200 OK odpoveď na vašu požiadavku.

ako poslať sms z delphi
Obrázok 1 - Ako poslať SMS z Delphi

Delphi kód na odoslanie SMS na mobil

Ukážka Delphi kódu na odoslanie SMS nižšie demonštruje, ako môžete poslať SMS pomocou HTTP REST SMS API Ozeki SMS Gateway s použitím jednotky Ozeki.Libs.Rest v Delphi. Táto jednotka je poskytovaná bezplatne a môžete ju použiť a upraviť v akomkoľvek z vašich projektov.

SendSms.delphi
program 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 := 'Ahoj svet!';

    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.
	

Ako použiť ukážku Delphi kódu na odoslanie SMS:

Táto ukážka Delphi kódu na odoslanie SMS môže byť použitá v akomkoľvek Delphi aplikácii. Na jej použitie musíte 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/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. Triedu MessageApi môžete použiť na odoslanie SMS na SMS bránu. SMS brána následne prepošle vašu správu do mobilnej siete buď prostredníctvom bezdrôtového pripojenia alebo cez internet.

Stiahnuť SendSMS.delphi

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

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

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

send sms delphi adresár
Obrázok 2 - Čo je vo vnútri SendSms.delphi.zip

Ako poslať SMS z Delphi (Jednoduchý návod)

Na odoslanie SMS z Delphi:

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

Na odosielanie SMS z Delphi musíte najprv nainštalovať Ozeki SMS Gateway. SMS bránu môžete 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 pripojenie k mobilnej sieti funguje. Posledným krokom pri príprave vášho prostredia je vytvorenie HTTP SMS API používateľského účtu. Vytvorte používateľa s menom "http_user" a heslom "qwe123", aby ukážka fungovala bez úprav.

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

HTTP API URL na odoslanie SMS z Delphi

Na odoslanie SMS z Delphi musí vaše Delphi aplikácia 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ží vaša 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žívaný formát je: 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. Všimnite si, ž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 vaša aplikácia v Delphi odošle HTTP požiadavku podobnú nižšie uvedenej. Všimnite si, že táto požiadavka obsahuje časť HTTP hlavičky a časť tela HTTP. Telo HTTP je reťazec dát zakódovaný do JSON. Obsahuje číslo príjemcu a text správy.

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
		}
	]
}
	
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. Tiež vráti štruktúru zakódovanú do JSON, ktorá poskytuje užitočné informácie o odoslaní správy.

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"
      }
    ]
  }
}
Pripojte svoju SMS bránu k mobilnej sieti a vytvorte HTTP API používateľský účet

Predpokladáme, že ste už nainštalovali Ozeki SMS Gateway, a že ste pripojili ju k mobilnej sieti. Aby ste mohli odosielať SMS na mobilný telefón z Delphi, musíte nastaviť používateľský účet HTTP API v Ozeki SMS Gateway.

Video 1 - Ako nastaviť používateľský účet HTTP API (Video návod)

Ako odoslať SMS z Delphi pomocou Delphi SMS API (Video návod)

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

Príklad SMS v Delphi: SendSms.dproj

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

Obrázok 3 - SendSms.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. Môžete skontrolovať log otvorením detailov HTTP používateľa v konzole na správu Ozeki SMS Gateway. Nasledujúce video vám ukáže, čo hľadať.

Video 3 - Odosielanie SMS s Delphi kódom vyššie (Video návod)

Ako skontrolovať, že SMS bola odoslaná do mobilnej siete

Posledným krokom pri overovaní postupu je pozrieť si záznamy mobilného pripojenia. Možno budete musieť pred odoslaním správy zapnúť logovanie v konfigurácii pripojenia, aby ste videli záznamy. Ak je logovanie povolené, uvidíte telefónne číslo a text správy, ktorú ste odoslali.

Video 4 - Ako otestovať, či požiadavku prijal SMPP klient (Video návod)

Ako vyzerá prijatie SMS správy na Android (Video návod)

V tomto videu vám ukážeme, ako vyzerá prijatie SMS správy na Android. Video je dlhé len 18 sekúnd, ale môžete na ňom vidieť celý proces. Začne sa obyčajnou domovskou obrazovkou Android. Uvidíte upozornenie na SMS a otvorenú aplikáciu Správy so zobrazenou správou.

Video 5 - SMS správa prijatá na mobilnom telefóne (Video návod)

Zhrnutie

Tento článok vám ukázal najjednoduchší spôsob odosielania SMS z Delphi. Ak ste si prečítali tento návod, viete, ako vytvoriť používateľa HTTP SMS API v Ozeki SMS Gateway, aby ste mohli odosielať SMS z Delphi. Jednou z mnohých výhod tohto riešenia je, že uvedený príklad SMS v Delphi môžete použiť a upraviť v ktoromkoľvek z vašich projektov.

Môžete nájsť viac dokumentov, ktoré ponúkajú ďalšie programové kódy pre Delphi, využívajte každú príležitosť a študujte ich. Ak chcete využiť túto službu Ozeki SMS Gateway v širšom okruhu, prečítajte si článok Ako stiahnuť najnovšiu Delphi SMS api jednotku z Githubu a dozviete sa viac.

Stiahnite si Ozeki SMS Gateway hneď teraz a nastavte si systém!

More information