Jak odeslat více SMS z Delphi
Nejjednodušší způsob, jak odeslat SMS z Delphi, je použít vestavěné HTTP/Rest SMS API Ozeki SMS Gateway. Při použití tohoto API budete odesílat SMS zprávy odesláním HTTP Post požadavku na SMS bránu. HTTP Post požadavek bude obsahovat zprávu ve formátu json. SMS brána odešle tuto SMS příjemci a vrátí odpověď HTTP 200 OK na váš požadavek.
Delphi kód pro odeslání SMS na mobil
Níže uvedený vzorový kód Delphi pro SMS ukazuje, jak můžete odesílat SMS pomocí HTTP REST SMS API Ozeki SMS Gateway s využitím jednotky Ozeki.Libs.Rest v Delphi. Tato jednotka je poskytována zdarma a můžete ji používat a upravovat v jakémkoli z vašich projektů.
SendMultipleSms.delphiprogram SendMultipleSms; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, Ozeki.Libs.Rest in 'Ozeki.Libs.Rest.pas'; var configuration : Ozeki.Libs.Rest.Configuration; var msg1, msg2, msg3 : Ozeki.Libs.Rest.Message; var api : Ozeki.Libs.Rest.MessageApi; var result : MessageSendResults; 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'; msg1 := Ozeki.Libs.Rest.Message.Create; msg1.ToAddress := '+36201111111'; msg1.Text := 'Hello world 1'; msg2 := Ozeki.Libs.Rest.Message.Create; msg2.ToAddress := '+36202222222'; msg2.Text := 'Hello world 2'; msg3 := Ozeki.Libs.Rest.Message.Create; msg3.ToAddress := '+36203333333'; msg3.Text := 'Hello world 3'; api := Ozeki.Libs.Rest.MessageApi.Create(configuration); result := api.SendMessages([ msg1, msg2, msg3 ]); Writeln(result.ToString()); Readln(read); except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end.
Jak použít příklad Delphi pro SMS:
Tento příklad Delphi pro SMS lze použít v jakékoli aplikaci Delphi. Pro použití musíte přidat jednotku Ozeki.Libs.Rest.pas do svého projektu. Po přidání jednotky musíte vložit direktivu uses Ozeki.Libs.Rest in 'Ozeki.Libs.Rest.pas'; do hlavičkové části vašeho zdrojového kódu Delphi. To vám umožní používat třídy poskytované jednotkou Ozeki.Libs.Rest. Třídu Message můžete použít k vytvoření SMS. Třídu MessageApi můžete použít k odeslání SMS na SMS bránu. SMS brána přepošle vaši zprávu do mobilní sítě buď prostřednictvím bezdrátového připojení nebo přes internet.
Stáhnout SendMultipleSms.delphi
Zdrojový kód vysvětlený v tomto článku lze stáhnout, použít a upravit zdarma.
Stáhnout: SendMultipleSms.delphi.zip (11,8Kb)
Co je v souboru SendMultipleSms.delphi.zip?
Soubor SendMultipleSms.delphi.zip obsahuje jednotku Ozeki.Libs.Rest, která vám poskytuje všechny nástroje potřebné k odesílání a přijímání SMS zpráv. V zipu také najdete projekt SendMultipleSms, který obsahuje ukázkový kód, který vám ukáže, jak odeslat SMS. Tento ukázkový kód je uveden níže.
Jak odeslat SMS z Delphi (Jednoduchý návod)
Pro odeslání SMS z Delphi:
- Nainstalujte uživatele HTTP API
- Povolte Logování komunikačních událostí na kartě Pokročilé
- Nastavte Embarcadero Delphi Studio
- Stáhněte a rozbalte soubor SendMultipleSms.delphi.zip
- Otevřete soubor SendMultipleSms.dproj v Delphi Studio dvojitým kliknutím
- Spusťte aplikaci Ozeki SMS Gateway
- Spusťte kód Delphi SendMultipleSms.dpr v Delphi Studio
- Zkontrolujte logy, zda byla SMS odeslána
Instalace Ozeki SMS Gateway a vytvoření uživatele HTTP API
Abyste mohli odesílat SMS z Delphi, musíte nejprve nainstalovat Ozeki SMS Gateway. SMS bránu lze nainstalovat na stejný počítač, kde vyvíjíte svůj kód Delphi v Visual studiu. Po instalaci je dalším krokem připojení Ozeki SMS Gateway k mobilní síti. Můžete odeslat testovací SMS z Ozeki GUI a ověřit, že vaše připojení k mobilní síti funguje. Posledním krokem k přípravě vašeho prostředí je vytvoření uživatele HTTP SMS API. Vytvořte uživatele s uživatelským jménem "http_user" a heslem "qwe123", aby příklad fungoval bez úprav.
Po nastavení prostředí můžete spustit svůj kód Delphi.
URL HTTP API pro odesílání SMS z Delphi
Pro odeslání SMS z Delphi musí vaše Delphi odeslat HTTP požadavek na SMS bránu. URL API je uvedena níže. Všimněte si, že IP adresa (127.0.0.1) by měla být nahrazena IP adresou vaší SMS brány. Pokud je Ozeki SMS Gateway nainstalována na stejném počítači, kde běží aplikace Delphi pro SMS, může to být 127.0.0.1. Pokud je nainstalována na jiném počítači, měla by být použita IP adresa tohoto počítače.
http://127.0.0.1:9509/api?action=rest
HTTP autentizace pro odesílání SMS z Delphi
Pro autentizaci klienta SMS v Delphi je třeba odeslat uživatelské jméno a heslo jako řetězec zakódovaný v base64 v HTTP požadavku. Použitý formát je: base64(uživatelské_jméno+":"+heslo). V Delphi můžete pro toto kódování použít následující kód:
var usernamePassword := username + ':' + password; var Encoder := TBase64Encoding.Create(); var usernamePasswordEncoded := Encoder.Encode(usernamePassword); result := Format('Basic %s', [usernamePasswordEncoded]);
Například pokud zakódujete uživatelské jméno 'http_user' a heslo 'qwe123', získáte následující řetězec zakódovaný v base64: aHR0cF91c2VyOnF3ZTEyMw==. Pro odeslání
HTTP hlavička požadavku pro odesílání SMS z Delphi
Pro odeslání SMS zpráv je třeba do HTTP požadavku zahrnout následující řádky jako hlavičky. Všimněte si, že zahrnujeme typ obsahu a autorizační hlavičku.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP požadavek pro odesílání SMS z Delphi
Pro odeslání SMS vaše aplikace v Delphi odešle HTTP požadavek podobný tomuto níže. Všimněte si, že tento požadavek obsahuje část HTTP hlavičky a část HTTP těla. HTTP tělo je řetězec dat zakódovaný v JSON. Obsahuje příjemce a texty zpráv, které chceme odeslat.
POST /api?action=sendmsg HTTP/1.0 Connection: keep-alive Content-Type: application/json Content-Length: 1211 Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509 Accept: application/json User-Agent: Mozilla/3.0 (compatible; Indy Library) { "messages": [ { "message_id": "b984812c-6af0-47ac-83e6-c162b1743272", "from_connection": "", "from_address": "", "from_station": "", "to_connection": "", "to_address": "+36201111111", "to_station":"", "text":" Hello world 1", "create_date": "2021-07-27T14:59:43", "valid_until": "2021-08-03T14:59:43", "time_to_send": "2021-07-27T14:59:43", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true }, { "message_id":"cccb9fc0-820c-47e0-9f8d-8a29f2f8dce8", "from_connection": "", "from_address": "", "from_station": "", "to_connection": "", "to_address": "+36202222222", "to_station": "", "text": "Hello world 2", "create_date": "2021-07-27T14:59:43", "valid_until": "2021-08-03T14:59:43", "time_to_send": "2021-07-27T14:59:43", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true }, { "message_id": "395197a7-14bf-484b-97bc-ef25056b1669", "from_connection": "", "from_address": "", "from_station": "", "to_connection": "", "to_address": "+36203333333", "to_station": "", "text": "Hello world 3", "create_date": "2021-07-27T14:59:43", "valid_until": "2021-08-03T14:59:43", "time_to_send": "2021-07-27T14:59:43", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true } ] }
HTTP odpověď přijatá v příkladu SMS v Delphi
Jakmile SMS brána obdrží tento požadavek, vygeneruje HTTP odpověď. HTTP odpověď bude obsahovat stavový kód, který indikuje, zda byl požadavek na odeslání SMS úspěšný nebo ne. Také vrátí strukturu zakódovanou v JSON, která poskytuje užitečné detaily o odeslání zpráv.
HTTP/1.1 200 OK Content-Type: application/json; charset=utf8 Last-Modified: Tue, 27 Jul 2021 14:31:15 GMT Server: 10/10.3.123 Microsoft-HTTPAPI/2.0 User-Agent: OZEKI 10.3.123 (myozeki.com) Date: Tue, 27 Jul 2021 12:59:42 GMT Connection: close { "http_code": 200, "response_code": "SUCCESS", "response_msg": "Zprávy zařazeny k doručení.", "data": { "total_count": 3, "success_count": 3, "failed_count": 0, "messages": [ { "message_id": "b984812c-6af0-47ac-83e6-c162b1743272", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello world 1", "create_date": "2021-07-27 14:59:43", "valid_until": "2021-08-03 14:59:43", "time_to_send": "2021-07-27 14:59:43", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "cccb9fc0-820c-47e0-9f8d-8a29f2f8dce8", "from_station": "%", "to_address": "+36202222222", "to_station": "%", "text": "Hello world 2", "create_date": "2021-07-27 14:59:43", "valid_until": "2021-08-03 14:59:43", "time_to_send": "2021-07-27 14:59:43", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "395197a7-14bf-484b-97bc-ef25056b1669", "from_station": "%", "to_address": "+36203333333", "to_station": "%", "text": "Hello world 3", "create_date": "2021-07-27 14:59:43", "valid_until": "2021-08-03 14:59:43", "time_to_send": "2021-07-27 14:59:43", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
Toto video vám ukáže, jak stáhnout soubor SendMultipleSms.delphi.zip z této stránky a jak jeho obsah načíst v Delphi studiu. Pokud sledujete video, všimnete si, že obsah souboru SendMultipleSms.delphi.zip je umístěn na plochu Windows. Uvidíte také, že dvakrát klikneme na soubor projektu SendMultipleSms.dproj, abychom projekt otevřeli.
Příklad SMS v Delphi: SendMultipleSms.dproj
V tomto řešení je pouze jeden projekt: SendMultipleSms.dproj a dva soubory: SendMultipleSms.dpr a Ozeki.Libs.Rest.pas.
Jak ověřit, že SMS byla přijata HTTP uživatelem
Po odeslání SMS je dobré zkontrolovat vaši SMS bránu, abyste viděli, co přijala. Protokol můžete zkontrolovat otevřením detailů HTTP uživatele z konzole pro správu Ozeki SMS Gateway. Následující video vám ukáže, na co se zaměřit.
Shrnutí
Po přečtení tohoto popisu o odesílání více SMS z Delphi budete vědět, jak připravit HTTP API uživatele v Ozeki SMS Gateway pro toto řešení. Použití tohoto systému vám pomůže kontrolovat náklady a sledovat zprávy. Příchozí SMS zprávy a události doručení budou prezentovány ve formě událostí a chyby budou správně zpracovány.
V žádném případě se zde nezastavujte, na webových stránkách Ozeki je mnoho článků, ze kterých se můžete učit. Pokračujte k dalšímu návodu pro Delphi o Jak naplánovat SMS.
Stáhněte si nyní Ozeki SMS Gateway a vyzkoušejte, co jste se naučili!
More information
- Delphi odeslat SMS pomocí HTTP REST API (ukázka kódu)
- Delphi odeslat více SMS pomocí HTTP REST API (ukázka kódu)
- Delphi naplánovat SMS pomocí HTTP REST API (ukázka kódu)
- Delphi přijmout SMS pomocí HTTP REST API (ukázka kódu)
- Delphi smazat SMS pomocí HTTP REST API (ukázka kódu)
- Jak stáhnout nejnovější Delphi SMS API jednotku z Githubu