Hogyan küldjünk 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át használva, a Delphi Ozeki.Libs.Rest unit segítségével. Ez az unit ingyenesen elérhető számodra, és bármely projektben felhasználhatod és módosíthatod.
SendSms.delphiprogram SendSms; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, Ozeki.Libs.Rest in '../Ozeki.Libs.Rest/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!'; 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ármely 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, el kell helyezned a uses Ozeki.Libs.Rest in '../Ozeki.Libs.Rest/Ozeki.Libs.Rest.pas'; direktívát a Delphi forráskódod fejléc részébe. 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 mobilhálózatnak vezeték nélküli kapcsolaton vagy az interneten keresztül.
SendSMS.delphi letöltése
A cikkben ismertetett forráskód letölthető, felhasználható és módosítható ingyenesen.
Letöltés: SendSms.delphi.zip (11.8Kb)
Mi található a SendSms.delphi.zip fájlban?
A SendSms.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 SendSms 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ó)
Az SMS küldéséhez 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 SendSms.delphi.zip fájlt
- Nyisd meg a SendSms.dproj fájlt a Delphi Studióban duplán kattintva rá
- Indítsd el az Ozeki SMS Gateway alkalmazást
- Futtasd a SendSms.dpr Delphi kódot a Delphi Studióban
- 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-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 mobilhá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 a környezet be van állítva, futtathatod a Delphi kódodat.
HTTP API URL az SMS küldéséhez Delphi-ből
Ahhoz, hogy SMS-t küldj Delphi-ből, a Delphi-dnak HTTP kérést kell küldenie az SMS gatewaynek. 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 az 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ó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-ben a következő kódot használhatod ehhez 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 az SMS küldéséhez Delphi-ből
Az SMS üzenetek küldéséhez a következő sorokat kell belefoglalnod fejlécként az HTTP kérésbe. Figyelj arra, hogy egy Content-Type és egy Authorization fejlécet is tartalmazunk.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP kérés az 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ódolású adatkarakterlánc. Tartalmazza a címzett számá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": "ae0d1fe5-7e93-4241-b31c-5b3ebf867c5b", "from_connection": "", "from_address": "", "from_station": "", "to_connection": "", "to_address": "+36201111111", "to_station": "", "text": "Hello world!", "create_date": "2021-07-27T14:22:12", "valid_until": "2021-08-03T14:22:12", "time_to_send": "2021-07-27T14:22:12", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true } ] }
HTTP válasz, amelyet a Delphi SMS példa kap
Miután az SMS gateway megkapja ezt a kérést, generál egy HTTP választ. Az HTTP válasz tartalmaz egy státuszkó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 visszaad, 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 06:58:42 GMT Server: 10/10.3.123 Microsoft-HTTPAPI/2.0 User-Agent: OZEKI 10.3.123 (myozeki.com) Date: Tue, 27 Jul 2021 12:22:12 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": "ae0d1fe5-7e93-4241-b31c-5b3ebf867c5b", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello world!", "create_date": "2021-07-27 14:22:12", "valid_until": "2021-08-03 14:22:12", "time_to_send": "2021-07-27 14:22:12", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
Kapcsold össze az SMS gatewayed a mobilhálózattal és hozz létre egy HTTP API felhasználói fiókot
Feltételezzük, hogy már telepítetted az Ozeki SMS Gateway-t, és csatlakoztattad a mobilhálózathoz. Ahhoz, hogy SMS-t tudj küldeni egy mobiltelefonra Delphi-ből, létre kell hoznod egy HTTP API felhasználói fiókot az Ozeki SMS Gateway-ben.
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 SendSms.delphi.zip fájlt erről az oldalról, és hogyan töltheted be a tartalmát a Delphi Studióban. Ha megnézed a videót, észreveszed, hogy a SendSms.delphi zip tartalma a Windows asztalra kerül. Azt is látni fogod, hogy duplán kattintunk a SendSms.dproj projektfájlra a projekt megnyitásához.
Delphi SMS példa: SendSms.dproj
Ebben a megoldásban csak egy projekt található: SendSms.dproj, és két fájl: SendSms.dpr és Ozeki.Libs.Rest.pas.
Hogyan ellenőrizd, hogy az SMS-t elfogadta-e az HTTP felhasználó
Miután elküldted az SMS-t, jó ötlet ellenőrizni az SMS gatewayedet, hogy lássad, mit kapott. A naplót az Ozeki SMS Gateway kezelőfelületén az HTTP felhasználó részleteinek megnyitásával ellenőrizheted. A következő videó bemutatja, hogy mire kell figyelned.
Hogyan ellenőrizd, hogy az SMS-t elküldte-e a mobilhálózat
A folyamat ellenőrzésének utolsó lépése a mobilhálózati kapcsolat naplóinak megtekintése. Lehet, hogy be kell kapcsolnod a naplózást a kapcsolat beállításaiban, mielőtt elküldöd az üzenetet, hogy lásd a naplókat. Ha a naplózás be van kapcsolva, látni fogod a telefonszámot és az elküldött üzenet szövegét.
Hogyan néz ki egy SMS fogadása Androidon (Videó útmutató)
Ebben a videóban megmutatjuk, hogyan néz ki egy SMS fogadása Androidon. A videó csak 18 másodperc hosszú, de az egész folyamat látható rajta. Egy közönséges Android kezdőképernyővel kezdődik. Látni fogod az SMS értesítését és a megnyitott Üzenetek alkalmazást az üzenettel.
Összefoglalás
Ez a cikk bemutatta a legegyszerűbb módját az SMS küldésének Delphi-ből. Ha elolvastad ezt az útmutatót, tudod, hogyan hozz létre egy HTTP SMS API felhasználót az Ozeki SMS Gateway-ben, hogy SMS-t tudj küldeni Delphi-ből. Ennek a megoldásnak az egyik előnye, hogy a megadott Delphi SMS példát bármely projektben felhasználhatod és módosíthatod.
További dokumentumokat is találhatsz, amelyek más Delphi programkódokat kínálnak, használd ki minden lehetőséget és tanulmányozd át őket. Ha szélesebb körben szeretnéd használni ezt az Ozeki SMS Gateway szolgáltatást, ugorj bele a Hogyan töltsük le a legújabb Delphi SMS API unitot a Github-ról cikkbe és tanulj meg többet.
Töltsd le most az Ozeki SMS Gateway-t és állítsd be a rendszert!
More information