Ako naplánovať SMS v Delphi

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

ako naplánovať sms v delphi
Obrázok 1 - Ako naplánovať SMS v Delphi

Delphi kód na odoslanie sms na mobil

Ukážka kódu Delphi pre SMS nižšie demonštruje, ako môžete odosielať 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 ktoromkoľvek z vašich projektov.

SendScheduledSms.delphi
program SendScheduledSms;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils,
  Ozeki.Libs.Rest in '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 := 'Hello world!';
    msg.TimeToSend := StrToDateTime('7/27/21 4:00:00 PM');

    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 kódu Delphi pre SMS:

Táto ukážka kódu Delphi pre SMS môže byť použitá v akejkoľvek aplikácii Delphi. Na jej použitie musíte pridať jednotku Ozeki.Libs.Rest.pas do svojho 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 zdrojového kódu Delphi. 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 potom prepošle vašu správu do mobilnej siete buď prostredníctvom bezdrôtového pripojenia alebo cez internet.

Stiahnuť SendScheduledSms.delphi

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

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

Súbor SendScheduledSms.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 v ňom tiež projekt SendScheduledSms, ktorý obsahuje ukážkový kód, ktorý vám ukáže, ako odoslať SMS. Tento ukážkový kód je uvedený nižšie.

odoslať viacero sms delphi adresár
Obrázok 2 - Čo je vo vnútri SendScheduledSms.delphi.zip

Ako odoslať 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 si a extrahujte súbor SendScheduledSms.delphi.zip
  5. Otvorte súbor SendScheduledSms.dproj v Delphi Studio dvojklikom naň
  6. Spustite aplikáciu Ozeki SMS Gateway
  7. Spustite kód Delphi SendScheduledSms.dpr v Delphi Studio
  8. Skontrolujte logy, či bola SMS odoslaná
Nainštalujte Ozeki SMS Gateway a vytvorte používateľa HTTP API

Na to, aby ste mohli odosielať SMS z Delphi, musíte najprv nainštalovať Ozeki SMS Gateway. SMS bránu je možné nainštalovať na rovnakom počítači, na ktorom vyvíjate svoj kód Delphi v Visual Studio. Po inštalácii je ďalším krokom pripojenie Ozeki SMS Gateway k mobilnej sieti. Môžete odoslať testovaciu SMS z grafického rozhrania Ozeki, aby ste overili, že 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 používateľským menom "http_user" a heslom "qwe123", aby ukážka fungovala bez úprav.

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

HTTP API URL na odoslanie SMS z Delphi

Na odoslanie SMS z Delphi musí vaše Delphi vytvoriť 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, na ktorom beží vaša aplikácia Delphi pre SMS, 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. Všimnite si, že obsahuje 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. 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, čas odoslania SMS 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": "910663ad-85d8-44cc-aad3-8a5da4024148",
			"from_connection": "",
			"from_address": "",
			"from_station": "",
			"to_connection": "",
			"to_address": "+36201111111",
			"to_station": "",
			"text": "Hello world!",
			"create_date": "2021-07-27T15:35:39",
			"valid_until": "2021-08-03T15:35:39",
			"time_to_send": "2021-07-27T14:00:00",
			"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. Taktiež vráti štruktúru zakódovanú do JSON, ktorá poskytne 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 15:09:55 GMT
Server: 10/10.3.123 Microsoft-HTTPAPI/2.0
User-Agent: OZEKI 10.3.123 (myozeki.com)
Date: Tue, 27 Jul 2021 13:35:39 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": "910663ad-85d8-44cc-aad3-8a5da4024148",
        "from_station": "%",
        "to_address": "+36201111111",
        "to_station": "%",
        "text": "Hello world!",
        "create_date": "2021-07-27 15:35:39",
        "valid_until": "2021-08-03 15:35:39",
        "time_to_send": "2021-07-27 14:00:00",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      }
    ]
  }
}
Ako odoslať SMS z Delphi pomocou Delphi SMS API (Video návod)

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

Príklad SMS v Delphi: SendScheduledSms.dproj

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

Obrázok 3 - SendScheduledSms.dproj

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

Po odoslaní SMS je dobré skontrolovať vašu SMS bránu, aby ste videli, čo prijala. Protokol môžete skontrolovať 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 2 - Odosielanie SMS pomocou vyššie uvedeného kódu v Delphi (Video návod)

Aby sme to zhrnuli

Tento článok je napísaný, aby vás naučil, ako odosielať naplánované SMS z prostredia Delphi pomocou HTTP API používateľa Ozeki SMS Gateway. Tento príklad SMS v Delphi môže byť použitý v akejkoľvek aplikácii Delphi, aby ste sa uistili, že spĺňa vaše očakávania. Ponúka správne, dobre napísané metódy na odoslanie SMS a dobre navrhnutú triedu SMS, ktorá vám umožní konfigurovať parametre SMS.

Ak vám tento článok prišiel užitočný - a som si istý, že áno - nezastavujte sa tu, nájdite si viac na prečítanie na webovej stránke Ozeki. Pozrite si tutoriál pre Delphi o Ako prijímať SMS.

Aby ste využili to, čo ste sa naučili, stiahnite si Ozeki SMS Gateway hneď teraz!

More information