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.

hogyan fogadjunk sms-t delphi-ban
1. ábra - Hogyan fogadjunk SMS-t Delphi-ban

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

receive sms delphi directory
2. ábra - Mi található a ReceiveSms.delphi.zip-ben

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. Engedélyezd a "Log communication events" opciót az Advanced fülön
  3. Állítsd be az Embarcadero Delphi Studiót
  4. Töltsd le, majd csomagold ki a ReceiveSms.delphi.zip fájlt
  5. Nyisd meg a ReceiveSms.dproj fájlt a Delphi Studióban dupla kattintással
  6. Indítsd el az Ozeki SMS Gateway alkalmazást
  7. Futtasd a ReceiveSms.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ó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.

2. ábra - ReceiveSms.dproj

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.

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

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