Hogyan ütemezzen SMS-t Delphi nyelven

A legegyszerűbb módja az SMS küldésének Delphi nyelven az Ozeki SMS Gateway beépített HTTP/Rest SMS API-jának használata. Amikor ezt az API-t használod, HTTP POST kérést küldesz az SMS gatewaynek. A HTTP POST kérés egy JSON formátumú üzenetet tartalmaz. Az SMS gateway továbbítja ezt az SMS-t a címzett telefonszámára, és egy HTTP 200 OK választ küld vissza a kérésedre.

hogyan ütemezzen sms-t delphi nyelven
1. ábra - Hogyan ütemezzen SMS-t Delphi nyelven

Delphi kód SMS küldésére mobilra

Az alábbi Delphi SMS kód minta bemutatja, hogyan küldhetsz SMS-t az Ozeki SMS Gateway HTTP REST SMS API-jával, az Ozeki.Libs.Rest unit segítségével. Ez az unit ingyenesen elérhető, és bármilyen projektben felhasználhatod és módosíthatod.

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.

	

Hogyan használd a Delphi SMS példát:

Ez a Delphi SMS példa bármilyen Delphi alkalmazásban használható. A használatához hozzá kell adnod az Ozeki.Libs.Rest.pas unitot a projektedhez. Miután hozzáadtad az unitot, a uses Ozeki.Libs.Rest in 'Ozeki.Libs.Rest.pas'; direktívát a Delphi forráskódod fejléc részébe kell elhelyezned. Ez lehetővé teszi az Ozeki.Libs.Rest unit által nyújtott osztályok használatát. A Message osztály segítségével létrehozhatod az SMS-t. A MessageApi osztály segítségével elküldheted az SMS-t az SMS gatewaynek. Az SMS gateway továbbítja az üzenetedet a mobil hálózatnak vezeték nélküli kapcsolaton vagy az interneten keresztül.

SendScheduledSms.delphi letöltése

A cikkben ismertetett forráskód ingyenesen letölthető, felhasználható és módosítható.
Letöltés: SendScheduledSms.delphi.zip (12.4Kb)

Mi található a SendScheduledSms.delphi.zip fájlban?

A SendScheduledSms.delphi.zip fájl tartalmazza az Ozeki.Libs.Rest unitot, amely minden szükséges eszközt biztosít az SMS-ek küldéséhez és fogadásához. A zip fájlban megtalálod a SendScheduledSms projektet is, amely tartalmazza a példakódot, amely bemutatja, hogyan küldj SMS-t. Ez a példakód az alábbiakban látható.

több sms küldése delphi könyvtár
2. ábra - Mi található a SendScheduledSms.delphi.zip fájlban

Hogyan küldj SMS-t Delphi nyelven (Egyszerű útmutató)

SMS küldése Delphi nyelven:

  1. Telepíts egy HTTP API felhasználót
  2. Engedélyezd a Kommunikációs események naplózását a Speciális lapon
  3. Állítsd be az Embarcadero Delphi Studiót
  4. Töltsd le, majd csomagold ki a SendScheduledSms.delphi.zip fájlt
  5. Nyisd meg a SendScheduledSms.dproj fájlt a Delphi Studióban duplán kattintva rá
  6. Indítsd el az Ozeki SMS Gateway alkalmazást
  7. Futtasd a SendScheduledSms.dpr Delphi kódot a Delphi Studióban
  8. Ellenőrizd a naplókat, hogy az SMS elküldődött-e

Telepítsd az Ozeki SMS Gateway-t és hozz létre egy HTTP API felhasználót

Ahhoz, hogy SMS-t tudj küldeni Delphi nyelven, először telepítened kell az Ozeki SMS Gateway-t. Az SMS gateway telepíthető ugyanarra a számítógépre, ahol a Delphi kódodat fejleszted a Visual Studio-ban. A telepítés után a következő lépés az, hogy csatlakoztad az Ozeki SMS Gateway-t a mobil hálózathoz. létrehozol egy HTTP SMS API felhasználói fiókot. Hozz létre egy felhasználót "http_user" felhasználónévvel és "qwe123" jelszóval, hogy a példa módosítás nélkül működjön.

Miután beállítottad a környezetet, futtathatod a Delphi kódodat.

HTTP API URL SMS küldéséhez Delphi nyelven

Ahhoz, hogy SMS-t küldj Delphi nyelven, a Delphi alkalmazásodnak HTTP kérést kell küldenie az SMS gatewaynek. Az API URL az alábbiakban látható. Fontos, hogy az IP cím (127.0.0.1) helyére az SMS gatewayed IP címét írd. Ha az Ozeki SMS Gateway ugyanarra a számítógépre van telepítve, ahol a Delphi SMS alkalmazás fut, ez maradhat 127.0.0.1. Ha másik számítógépre van telepítve, annak IP címét kell megadni.

http://127.0.0.1:9509/api?action=rest
	

HTTP hitelesítés SMS küldéséhez Delphi nyelven

A Delphi SMS kliens hitelesítéséhez a felhasználónevet és jelszót base64 kódolású karakterláncként kell elküldened a szervernek egy HTTP kérésben. A használt formátum: base64(felhasználónév+":"+jelszó). Delphi nyelven a következő kódot használhatod a kódoláshoz:

var usernamePassword := username + ':' + password;
var Encoder := TBase64Encoding.Create();
var usernamePasswordEncoded := Encoder.Encode(usernamePassword);
result := Format('Basic %s', [usernamePasswordEncoded]);
	

Például ha a 'http_user' felhasználónevet és a 'qwe123' jelszót kódolod, a következő base64 kódolású karakterláncot kapod: aHR0cF91c2VyOnF3ZTEyMw==.

HTTP kérés fejléc SMS küldéséhez Delphi nyelven

Az SMS üzenetek küldéséhez a következő sorokat kell fejlécben tartalmaznia az HTTP kérésnek. Figyeld meg, hogy tartalomtípust és egy Authorization fejlécet is tartalmazunk.

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

HTTP kérés SMS küldéséhez Delphi nyelven

Az SMS beküldéséhez a Delphi alkalmazásod egy olyan HTTP kérést küld, mint az alábbi. Figyeld meg, hogy ez a kérés tartalmaz egy HTTP fejléc részt és egy HTTP törzs részt. A HTTP törzs egy JSON kódolású adatsor. Tartalmazza a címzett számát, az SMS küldésének idejét és az üzenet szövegét.

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 válasz, amit a Delphi SMS példa kap

Miután az SMS gateway megkapja ezt a kérést, generál egy HTTP választ. A HTTP válasz tartalmaz egy állapotkódot, amely jelzi, hogy az SMS beküldési kérés sikeres volt-e vagy sem. Egy JSON kódolású struktúrát is visszaküld, amely hasznos részleteket nyújt az üzenet beküldéséről.

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"
      }
    ]
  }
}

Hogyan küldj SMS-t Delphi nyelven a Delphi SMS API segítségével (Videó útmutató)

Ez a videó bemutatja, hogyan töltheted le a SendScheduledSms.delphi.zip fájlt erről az oldalról, és hogyan nyithatod meg a tartalmát a Delphi Studióban. Ha megnézed a videót, észreveszed, hogy a SendScheduledSms.delphi zip tartalma a Windows asztalra kerül. Azt is látni fogod, hogy duplán kattintunk a SendScheduledSms.dproj projektfájlra a projekt megnyitásához.

1. videó - Hogyan töltsd le és futtasd a példa projektet (Videó útmutató)

Delphi SMS példa: SendScheduledSms.dproj

Ebben a megoldásban csak egy projekt található: SendScheduledSms.dproj, és két fájl: SendScheduledSms.dpr és Ozeki.Libs.Rest.pas.

3. ábra - SendScheduledSms.dproj

Hogyan ellenőrizd, hogy az SMS-t elfogadta-e a HTTP felhasználó

Miután elküldted az SMS-t, érdemes ellenőrizni az SMS gatewayedet, hogy lássad, mit kapott. A naplót az Ozeki SMS Gateway kezelőfelületén keresztül ellenőrizheted, ahol megnyithatod a HTTP felhasználó részleteit. Az alábbi videó bemutatja, hogy mire kell figyelni.

2. videó - SMS küldése a fenti Delphi kóddal (Videó útmutató)

Összefoglalás

Ez a cikk arra szolgál, hogy megtanítson téged, hogyan küldj ütemezett SMS-t Delphi nyelven az Ozeki SMS Gateway HTTP API felhasználójának segítségével. Ez a Delphi SMS példa bármilyen Delphi alkalmazásban használható, hogy megbizonyosodj róla, megfelel-e az elvárásaidnak. Megfelelő, jól megírt metódushívásokat kínál az SMS beküldéséhez és egy jól megtervezett SMS osztályt az SMS paramétereinek beállításához.

Ha hasznosnak találod ezt a cikket - és biztos vagyok benne, hogy így van - ne állj meg itt, olvass tovább az Ozeki weboldalán. Nézd meg a Delphi oktatóanyagot arról, hogy Hogyan fogadj SMS-t.

Hogy kihasználd a megtanultakat, töltsd le most az Ozeki SMS Gateway-t!

More information