Hogyan fogadjunk SMS-t Delphi-ban
A legegyszerűbb módja az SMS fogadásának Delphi-ban az Ozeki SMS Gateway beépített HTTP/Rest SMS API-jának használata. Ezzel az API-val HTTP POST kérést küldhetsz az SMS gateway-nek, amely JSON formátumban formázott üzenetet tartalmaz. Az SMS gateway továbbítja az SMS-t a címzett telefonszámára, majd HTTP 200 OK választ küld vissza a kérésedre.
Delphi kód SMS fogadásához
Az alábbi Delphi SMS kódminta 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 használható és módosítható bármely projektben.
ReceiveSms.delphiprogram ReceiveSms; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, Ozeki.Libs.Rest in 'Ozeki.Libs.Rest.pas'; var configuration : Ozeki.Libs.Rest.Configuration; var api : Ozeki.Libs.Rest.MessageApi; var result : MessageReceiveResult; var message : Ozeki.Libs.Rest.Message; 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'; api := Ozeki.Libs.Rest.MessageApi.Create(configuration); result := api.DownloadIncoming; Writeln(result.ToString); for message in result.Messages do begin Writeln(message.ToString); end; 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ármely Delphi alkalmazásban használható. Használatához hozzá kell adni az Ozeki.Libs.Rest.pas unitot a projekthez, majd a Delphi forráskód fejlécébe be kell illeszteni a uses Ozeki.Libs.Rest in 'Ozeki.Libs.Rest.pas'; direktívát. Ez lehetővé teszi az Ozeki.Libs.Rest unit osztályainak használatát. Az Message osztállyal hozhatsz létre SMS-t, az MessageApi osztállyal pedig elküldheted az SMS-t az SMS gateway-nek, amely továbbítja azt a mobilhálózatra vezetékes vagy vezeték nélküli kapcsolaton keresztül.
ReceiveSms.delphi letöltése
A cikkben ismertetett forráskód ingyenesen letölthető, használható és módosítható.
Letöltés: ReceiveSms.delphi.zip (11.9Kb)
Mi található a ReceiveSms.delphi.zip fájlban?
A ReceiveSms.delphi.zip tartalmazza az Ozeki.Libs.Rest unitot, amely minden szükséges eszközt biztosít az SMS küldéséhez és fogadásához. A zip-ben található a ReceiveSms projekt is, amely tartalmazza a példakódot az SMS küldésének bemutatására. 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
- Engedélyezd a "Log communication events" opciót az Advanced fülön
- Állítsd be az Embarcadero Delphi Studiót
- Töltsd le, majd csomagold ki a ReceiveSms.delphi.zip fájlt
- Nyisd meg a ReceiveSms.dproj fájlt a Delphi Studióban dupla kattintással
- Indítsd el az Ozeki SMS Gateway alkalmazást
- Futtasd a ReceiveSms.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ódot fejleszted. Telepítés után a következő lépés az Ozeki SMS Gateway csatlakoztatása a mobilhá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 alkalmazásodnak HTTP kérést kell küldenie az SMS gateway-nek. Az API URL az alábbiakban látható. Fontos, hogy az IP cím (127.0.0.1) helyére az SMS gateway 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, maradhat 127.0.0.1. Ha másik számítógépen van, 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-ból
A Delphi SMS kliens hitelesítéséhez a felhasználónevet és jelszót base64 kódolású karakterláncként kell elküldeni a szervernek egy HTTP kérésben. A formátum: base64(username+":"+password). Delphi-ban a következő kóddal végezheted el ezt a kódolást:
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-ból
Az SMS üzenetek küldéséhez a következő sorokat kell fejlécben megadni az HTTP kérésben. Figyelj arra, hogy a tartalomtípus és az Authorization fejléc is szerepeljen.
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 küld, mint az alábbi. Figyelj rá, hogy ez a kérés csak egy HTTP fejléc részt tartalmaz, amely minden szükséges információt tartalmaz az összes üzenet letöltéséhez egy adott mappából.
GET /api?action=receivemsg&folder=inbox HTTP/1.1 Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509 Accept: application/json User-Agent: Mozilla/3.0 (compatible; Indy Library)
HTTP válasz, amit a Delphi SMS példa kap
Amint 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. Emellett 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 Transfer-Encoding: chunked Content-Type: application/json; charset=utf8 Last-Modified: Tue, 27 Jul 2021 15:49:18 GMT Server: 10/10.3.123 Microsoft-HTTPAPI/2.0 User-Agent: OZEKI 10.3.123 (myozeki.com) Date: Tue, 27 Jul 2021 14:10:33 GMT { "http_code": 200, "response_code": "SUCCESS", "response_msg": "", "data": { "folder": "inbox", "limit": "1000", "data": [ { "message_id": "be5e98cf-2bcb-d8dc-94ae-aa909504afe7", "from_connection": "http_user@localhost", "from_address": "+36201111111", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello world 1", "create_date": "2021-07-27 16:06:02", "valid_until": "2021-08-03 16:06:02", "time_to_send": "2021-07-27 16:06:02", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] }, { "message_id": "466d737f-68d5-f64d-84d8-ac0a3f950543", "from_connection": "http_user@localhost", "from_address": "+36202222222", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello world 2", "create_date": "2021-07-27 16:06:02", "valid_until": "2021-08-03 16:06:02", "time_to_send": "2021-07-27 16:06:02", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] }, { "message_id": "36069eca-95c1-bced-8876-ece0dcd74acd", "from_connection": "http_user@localhost", "from_address": "+36203333333", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello world 3", "create_date": "2021-07-27 16:06:02", "valid_until": "2021-08-03 16:06:02", "time_to_send": "2021-07-27 16:06:02", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] } ] } }
Hogyan küldjünk SMS-t Delphi-ból a Delphi SMS API-val (Videó útmutató)
Ez a videó bemutatja, hogyan töltheted le a ReceiveSms.delphi.zip fájlt erről az oldalról, és hogyan nyithatod meg a tartalmát a Delphi Studióban. A videóban láthatod, hogy a ReceiveSms.delphi zip tartalma a Windows asztalra kerül. Azt is látni fogod, hogy dupla kattintással nyitjuk meg a ReceiveSms.dproj projektfájlt.
Delphi SMS példa: ReceiveSms.dproj
Ebben a megoldásban csak egy projekt található: ReceiveSms.dproj, és két fájl: ReceiveSms.dpr és Ozeki.Libs.Rest.pas.
Hogyan ellenőrizzük, hogy az SMS-t elfogadta-e az HTTP felhasználó
Az SMS beküldése után érdemes ellenőrizni az SMS gateway-t, hogy mit kapott meg. A naplót az Ozeki SMS Gateway kezelőfelületén az HTTP felhasználó részleteinek megnyitásával ellenőrizheted. Az alábbi videó bemutatja, hogy mire kell figyelni.
Végső gondolatok
Ezen útmutató követésével megtanultad, hogyan használhatod az Ozeki SMS Gateway HTTP SMS API felhasználóját SMS fogadásához Delphi-ban. Ez a Delphi SMS példa egyszerű és könnyen beállítható, kompatibilis lesz bármilyen típusú Delphi alkalmazással. Ez a szolgáltatás hatékonyabbá teheti szervezetedet, mivel lehetővé teszi az értékes információk gyors és zökkenőmentes továbbítását.
Lehet, hogy más funkcionalitású Delphi SMS API-ra van szükséged, ezért ne állj meg itt. További lehetőségeket találsz a Hogyan töltsd le a legújabb Delphi SMS API unitot GitHub-ról cikkben.
Töltsd le az Ozeki SMS Gateway-t és fejleszd vállalkozásodat most!
More information