Jak naplánovat SMS v Delphi

Nejjednodušší způsob, jak odesílat 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í HTTP 200 OK odpověď na váš požadavek.

jak naplánovat sms v delphi
Obrázek 1 - Jak naplánovat SMS v Delphi

Delphi kód pro odeslání SMS na mobil

Následující ukázka kódu Delphi pro SMS demonstruje, jak můžete odesílat SMS pomocí HTTP REST SMS API Ozeki SMS Gateway s využitím jednotky Ozeki.Libs.Rest. Tato jednotka je poskytována zdarma a můžete ji používat a upravovat v jakémkoli svém projektu.

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.

	

Jak používat příklad Delphi pro SMS:

Tento příklad Delphi pro SMS lze použít v jakékoli aplikaci Delphi. Pro použití je nutné přidat jednotku Ozeki.Libs.Rest.pas do vašeho 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 SendScheduledSms.delphi

Zdrojový kód vysvětlený v tomto článku lze stáhnout, použít a upravit zdarma.
Stáhnout: SendScheduledSms.delphi.zip (12.4Kb)

Co obsahuje soubor SendScheduledSms.delphi.zip?

Soubor SendScheduledSms.delphi.zip obsahuje jednotku Ozeki.Libs.Rest, která vám poskytuje všechny nástroje potřebné pro odesílání a přijímání SMS zpráv. Najdete zde také projekt SendScheduledSms, který obsahuje ukázkový kód, který vám ukáže, jak odeslat SMS. Tento ukázkový kód je uveden níže.

odeslat více sms delphi adresář
Obrázek 2 - Co obsahuje SendScheduledSms.delphi.zip

Jak odeslat SMS z Delphi (Jednoduchý návod)

Pro odeslání SMS z Delphi:

  1. Nainstalujte HTTP API uživatele
  2. Povolte Logování komunikačních událostí na záložce Pokročilé
  3. Nastavte Embarcadero Delphi Studio
  4. Stáhněte a rozbalte soubor SendScheduledSms.delphi.zip
  5. Otevřete soubor SendScheduledSms.dproj v Delphi Studio dvojklikem
  6. Spusťte aplikaci Ozeki SMS Gateway
  7. Spusťte kód Delphi SendScheduledSms.dpr v Delphi Studio
  8. Zkontrolujte logy, zda byla SMS odeslána

Instalace Ozeki SMS Gateway a vytvoření HTTP API uživatele

Pro odesílání SMS z Delphi je nejprve nutné 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 pro ověření, že vaše připojení k mobilní síti funguje. Posledním krokem k přípravě prostředí je vytvoření HTTP SMS API uživatele. 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.

HTTP API URL pro odesílání SMS z Delphi

Pro odesílání SMS z Delphi musí vaše Delphi odeslat HTTP požadavek na SMS bránu. API URL je uvedeno níže. Poznámka: 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 SMS klienta v Delphi je potřeba odeslat uživatelské jméno a heslo jako řetězec zakódovaný v base64 na server v HTTP požadavku. Použitý formát je: base64(username+":"+password). 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 potřeba do HTTP požadavku zahrnout následující řádky jako hlavičky. Poznámka: zahrnujeme hlavičku Content-Type a Authorization.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
	

HTTP požadavek pro odesílání SMS z Delphi

Pro odeslání SMS váš Delphi aplikace odešle HTTP požadavek podobný tomuto níže. Poznámka: 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 číslo příjemce, čas odeslání SMS a text zprá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 odpověď přijatá v Delphi SMS příkladu

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á poskytne užitečné detaily o odeslání zprá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"
      }
    ]
  }
}

Jak odeslat SMS z Delphi pomocí Delphi SMS API (Video návod)

Toto video vám ukáže, jak stáhnout soubor SendScheduledSms.delphi.zip z této stránky a jak jeho obsah otevřít v Delphi studiu. Pokud se podíváte na video, všimnete si, že obsah SendScheduledSms.delphi zipu je umístěn na plochu Windows. Uvidíte také, že dvakrát klikneme na soubor projektu SendScheduledSms.dproj, abychom jej otevřeli.

Delphi SMS příklad: SendScheduledSms.dproj

V tomto řešení je pouze jeden projekt: SendScheduledSms.dproj a dva soubory: SendScheduledSms.dpr a Ozeki.Libs.Rest.pas.

Obrázek 3 - SendScheduledSms.dproj

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 v konzoli pro správu Ozeki SMS Gateway. Následující video vám ukáže, na co se zaměřit.

Video 2 - Odesílání SMS s Delphi kódem výše (Video návod)

Shrnutí

Tento článek vás naučí, jak odesílat naplánované SMS z Delphi pomocí HTTP API uživatele Ozeki SMS Gateway. Tento příklad SMS v Delphi lze použít v jakékoli aplikaci Delphi, aby splnil vaše očekávání. Nabízí správné, dobře napsané volání metod pro odeslání SMS a dobře navrženou třídu SMS, která vám umožní konfigurovat parametry SMS.

Pokud vám tento článek připadá užitečný – a jsem si jistý, že ano – nezastavujte se zde, najděte si další čtení na webové stránce Ozeki. Podívejte se na výukový program Delphi o Jak přijímat SMS.

Abyste využili toho, co jste se naučili, stáhněte si nyní Ozeki SMS Gateway!

More information