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.
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.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.
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ó.
Hogyan küldjünk SMS-t Delphi-ből (Egyszerű útmutató)
SMS küldése Delphi-ből:
- Telepíts egy HTTP API felhasználót
- Kapcsold be a Kommunikációs események naplózását a Speciális lapon
- Állítsd be az Embarcadero Delphi Studiót
- Töltsd le, majd csomagold ki a SendMultipleSms.delphi.zip fájlt
- Nyisd meg a SendMultipleSms.dproj fájlt a Delphi Studióban duplán kattintva rá
- Indítsd el az Ozeki SMS Gateway alkalmazást
- Futtasd a SendMultipleSms.dpr Delphi kódot a Delphi Studióban
- 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.
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.
Ö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