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.

hogyan küldjünk sms-t delphi-ből
1. ábra - Hogyan küldjünk 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á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.delphi
program 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ó.

send sms delphi directory
2. ábra - Mi található a SendSms.delphi.zip fájlban

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

Az SMS küldéséhez 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 SendSms.delphi.zip fájlt
  5. Nyisd meg a SendSms.dproj fájlt a Delphi Studióban duplán kattintva rá
  6. Indítsd el az Ozeki SMS Gateway alkalmazást
  7. Futtasd a SendSms.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-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.

1. videó - Hogyan hozzunk létre egy HTTP API felhasználói fiókot (Videó útmutató)

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.

3. ábra - SendSms.dproj

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.

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

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.

4. videó - Hogyan teszteljük, hogy az SMPP kliens elfogadta-e a kérést (Videó útmutató)

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.

5. videó - SMS üzenet fogadása a mobiltelefonon (Videó útmutató)

Ö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