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.
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.delphiprogram 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)
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.
Na odoslanie SMS z Delphi:
- Nainštalujte HTTP API používateľa
- Povoľte Logovanie komunikačných udalostí na karte Pokročilé
- Nastavte Embarcadero Delphi Studio
- Stiahnite a rozbaľte súbor SendSms.delphi.zip
- Otvorte súbor SendSms.dproj v Delphi Studio dvojklikom naň
- Spustite aplikáciu Ozeki SMS Gateway
- Spustite Delphi kód SendSms.dpr v Delphi Studio
- Skontrolujte logy, či bola SMS odoslaná
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 DelphiNa 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 DelphiNa 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==
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 } ] }
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" } ] } }
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.
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.dprojV tomto riešení je len jeden projekt: SendSms.dproj a dva súbory: SendSms.dpr a Ozeki.Libs.Rest.pas.
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ť.
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.
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.
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
- Delphi send SMS with the HTTP rest API (code sample)
- Delphi send multiple SMS with the HTTP rest API (code sample)
- Delphi schedule SMS with the HTTP rest API (code sample)
- Delphi receive SMS with the HTTP rest API (code sample)
- Delphi delete SMS with the HTTP rest API (code sample)
- How to download the latest Delphi SMS API unit from Github