Hogyan küldjünk több SMS-t Delphi-ből

A legegyszerűbb módja az SMS küldésének Delphi-ből az Ozeki SMS Gateway beépített HTTP/Rest SMS API-jának használata. Amikor ezt az API-t használod, SMS üzeneteket küldhetsz HTTP POST kérések kiadásával az SMS gateway felé. A HTTP POST kérés egy JSON formátumban formázott üzenetet fog tartalmazni. 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 küldjünk több sms-t delphi-ből
1. ábra - Hogyan küldjünk több SMS-t Delphi-ből

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.

SendMultipleSms.delphi
program 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.
	

A Delphi SMS példa használata:

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.

SendMultipleSms.delphi letöltése

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

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

A SendMultipleSms.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 SendMultipleSms projektet is, amely tartalmazza a példakódot, amely bemutatja, hogyan küldj egy 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 SendMultipleSms.delphi.zip fájlban

Hogyan küldjünk SMS-t Delphi-ből (Egyszerű útmutató)

SMS küldése Delphi-ből:

  1. Telepíts egy HTTP API felhasználót
  2. Kapcsold be 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 SendMultipleSms.delphi.zip fájlt
  5. Nyisd meg a SendMultipleSms.dproj fájlt a Delphi Studióban duplán kattintva rá
  6. Indítsd el az Ozeki SMS Gateway alkalmazást
  7. Futtasd a SendMultipleSms.dpr Delphi kódot a Delphi Studióban
  8. Ellenőrizd a naplókat, hogy az SMS elküldődött-e

Ozeki SMS Gateway telepítése és HTTP API felhasználó létrehozása

Ahhoz, hogy SMS-t tudj küldeni Delphi-ből, 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. HTTP SMS API felhasználói fiók létrehozása. 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 a környezet beállításra került, futtathatod a Delphi kódodat.

HTTP API URL SMS küldéséhez Delphi-ből

Ahhoz, hogy SMS-t küldj Delphi-ből, a Delphi-dnek HTTP kérést kell küldenie az SMS gateway felé. Az API URL az alábbiakban látható. Figyelj arra, hogy az IP cím (127.0.0.1) helyére az SMS gateway IP címét kell beírnod. Ha az Ozeki SMS Gateway ugyanarra a számítógépre van telepítve, ahol a Delphi SMS alkalmazás fut, ez lehet 127.0.0.1. Ha másik számítógépre van telepítve, annak az IP címét kell megadnod.

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

HTTP hitelesítés SMS küldéséhez Delphi-ből

A Delphi SMS kliens hitelesítéséhez a felhasználónevet és a jelszót base64 kódolt formában kell elküldened a szervernek egy HTTP kérésben. A használt formátum: base64(felhasználónév+":"+jelszó). Delphi-ben 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ódolt sztringet kapod: aHR0cF91c2VyOnF3ZTEyMw==.

HTTP kérés fejléc SMS küldéséhez Delphi-ből

Az SMS üzenetek küldéséhez a következő sorokat kell belefoglalnod fejlécnek az HTTP kérésbe. Figyelj arra, 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-ből

Az SMS beküldéséhez a Delphi alkalmazásod egy olyan HTTP kérést fog küldeni, mint az alábbi. Figyelj arra, hogy ez a kérés tartalmaz egy HTTP fejléc részt és egy HTTP törzs részt. Az HTTP törzs egy JSON kódolt adatsztring. Tartalmazza a címzett telefonszámát és az üzenet szövegét, amit küldeni szeretnénk.

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

Miután az SMS gateway megkapja ezt a kérést, egy HTTP választ generál. Az HTTP válasz tartalmaz egy státuszkódot, ami jelzi, hogy az SMS beküldési kérés sikeres volt-e vagy sem. Visszaad egy JSON kódolt struktúrát is, ami 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 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": "Messages queued for delivery.",
  "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"
      }
    ]
  }
}

Hogyan küldjünk SMS-t Delphi-ből a Delphi SMS API használatával (Videó útmutató)

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

Delphi SMS példa: SendMultipleSms.dproj

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

3. ábra - SendMultipleSms.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 gateway-t, hogy mit kapott meg. A naplót az Ozeki SMS Gateway kezelőfelületén keresztül ellenőrizheted, a HTTP felhasználó részleteinek megnyitásával. Az alábbi videó bemutatja, hogy mire kell figyelni.

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

Összefoglalás

Miután elolvastad ezt a leírást a több SMS küldéséről Delphi-ből, tudni fogod, hogyan készíts elő egy HTTP API felhasználót az Ozeki SMS Gateway-ben ehhez a megoldáshoz. Ennek a rendszernek a használata segít a költségek ellenőrzésében és az üzenetek nyomon követésében. A bejövő SMS üzenetek, kézbesítési események események formájában jelennek meg, és a hibák megfelelően kezelődnek.

Ne állj meg itt, az Ozeki weboldalán sok cikk található, amelyekből tanulhatsz. Lépj tovább a következő Delphi oktatóanyagra, amely az SMS ütemezéséről szól.

Töltsd le most az Ozeki SMS Gateway-t, és próbáld ki, amit tanultál!

More information