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