Kako poslati SMS iz Delphija

Najenostavnejši način za pošiljanje SMS-ov iz Delphija je uporaba vgrajenega HTTP/Rest SMS API-ja Ozeki SMS Gateway. Ko uporabljate ta API, boste SMS sporočila pošiljali z izdajo HTTP Post zahteve proti SMS prehodu. HTTP Post zahteva bo vsebovala sporočilo v json formatu. SMS prehod bo poslal ta SMS prejemniku in vrnil HTTP 200 OK odgovor na vašo zahtevo.

kako poslati sms iz delphija
Slika 1 - Kako poslati SMS iz Delphija

Delphi koda za pošiljanje SMS-ov na mobilne naprave

Spodnji Delphi SMS koda primer prikazuje, kako lahko pošiljate SMS-e z uporabo http rest sms api-ja Ozeki SMS Gateway z uporabo enote Delphi Ozeki.Libs.Rest. Ta enota vam je na voljo brezplačno in jo lahko uporabljate in spreminjate v katerem koli od vaših projektov.

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 := 'Pozdravljen svet!';

    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.
	

Kako uporabiti Delphi SMS primer:

Ta Delphi SMS primer lahko uporabite v kateri koli Delphi aplikaciji. Za uporabo morate dodati enoto Ozeki.Libs.Rest.pas v vaš projekt. Po dodajanju enote morate v glavo vaše Delphi izvorne kode dodati direktivo uses Ozeki.Libs.Rest in '../Ozeki.Libs.Rest/Ozeki.Libs.Rest.pas';. To vam bo omogočilo uporabo razredov, ki jih ponuja enota Ozeki.Libs.Rest. Razred Message lahko uporabite za ustvarjanje SMS-a. Razred MessageApi lahko uporabite za pošiljanje SMS-a proti SMS prehodu. SMS prehod bo vaše sporočilo posredoval mobilnemu omrežju prek brezžične povezave ali prek interneta.

Prenesite SendSMS.delphi

Izvorna koda, razložena v tem članku, je na voljo za brezplačen prenos, uporabo in spreminjanje.
Prenos: SendSms.delphi.zip (11,8Kb)

Kaj vsebuje datoteka SendSms.delphi.zip?

Datoteka SendSms.delphi.zip vsebuje enoto Ozeki.Libs.Rest, ki vam ponuja vsa orodja, potrebna za pošiljanje in prejemanje SMS sporočil. V zip datoteki boste našli tudi projekt SendSms, ki vsebuje primer kode, ki vam pokaže, kako poslati SMS. Ta primer kode je naveden spodaj.

mapa za pošiljanje sms iz delphija
Slika 2 - Kaj vsebuje SendSms.delphi.zip

Kako poslati SMS iz Delphija (Preprosta navodila)

Za pošiljanje SMS-ov iz Delphija:

  1. Namestite uporabnika HTTP API
  2. Omogočite beleženje komunikacijskih dogodkov na zavihku Napredno
  3. Nastavite Embarcadero Delphi Studio
  4. Prenesite in razširite datoteko SendSms.delphi.zip
  5. Odprite datoteko SendSms.dproj v Delphi Studiu z dvojnim klikom nanjo
  6. Zaženite aplikacijo Ozeki SMS Gateway
  7. Zaženite Delphi kodo SendSms.dpr v Delphi Studiu
  8. Preverite dnevnike, da vidite, ali je bil SMS poslan
Namestite Ozeki SMS Gateway in ustvarite uporabnika HTTP API

Da lahko pošiljate SMS-e iz Delphija, morate najprej namestiti Ozeki SMS Gateway. SMS prehod lahko namestite na isti računalnik, kjer razvijate svojo Delphi kodo v Visual studiu. Po namestitvi je naslednji korak povezovanje Ozeki SMS Gateway-ja z mobilnim omrežjem. Lahko pošljete testni SMS iz Ozeki GUI-ja, da preverite, ali vaša mobilna omrežna povezava deluje. Zadnji korak za pripravo vašega okolja je ustvarjanje uporabnika HTTP SMS API. Ustvarite uporabnika z uporabniškim imenom "http_user" in geslom "qwe123", da primer deluje brez sprememb.

Ko je okolje pripravljeno, lahko zaženete svojo Delphi kodo.

HTTP API URL za pošiljanje SMS-ov iz Delphija

Za pošiljanje SMS-ov iz Delphija bo vaš Delphi moral izdati HTTP zahtevo proti SMS prehodu. API URL je prikazan spodaj. Upoštevajte, da je treba IP naslov (127.0.0.1) zamenjati z IP naslovom vašega SMS prehoda. Če je Ozeki SMS Gateway nameščen na istem računalniku, kjer teče Delphi SMS aplikacija, je to lahko 127.0.0.1. Če je nameščen na drugem računalniku, mora biti to IP naslov tega računalnika.

http://127.0.0.1:9509/api?action=rest
	

HTTP avtentikacija za pošiljanje SMS-ov iz Delphija

Za avtentikacijo odjemalca SMS v Delphi morate uporabniško ime in geslo poslati v nizu, kodiranem z base64, na strežnik v zahtevi HTTP. Uporabljen format je: base64(uporabniško_ime+":"+geslo). V Delphi lahko za to kodiranje uporabite naslednjo kodo:

var usernamePassword := username + ':' + password;
var Encoder := TBase64Encoding.Create();
var usernamePasswordEncoded := Encoder.Encode(usernamePassword);
result := Format('Basic %s', [usernamePasswordEncoded]);
	

Na primer, če kodirate uporabniško ime 'http_user' in geslo 'qwe123', boste prejeli naslednji niz, kodiran z base64: aHR0cF91c2VyOnF3ZTEyMw==. Za pošiljanje

HTTP glava zahteve za pošiljanje SMS-ov iz Delphija

Za pošiljanje SMS sporočil morate v zahtevo HTTP vključiti naslednje vrstice kot glave. Upoštevajte, da vključujemo vrsto vsebine in glavo za avtorizacijo.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
	
HTTP zahteva za pošiljanje SMS-ov iz Delphija

Za oddajo SMS-a bo vaša aplikacija Delphi poslala HTTP zahtevo, podobno spodnji. Upoštevajte, da ta zahteva vsebuje del z glavo HTTP in del s telesom HTTP. Telo HTTP je niz podatkov, kodiran v JSON. Vsebuje številko prejemnika in besedilo sporočila.

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 odgovor, prejet v primeru SMS v Delphi

Ko prehodnica SMS prejme to zahtevo, bo ustvarila odgovor HTTP. Odgovor HTTP bo vseboval kodo stanja, ki označuje, ali je bila zahteva za oddajo SMS-a uspešna ali ne. Prav tako bo vrnil strukturo, kodirano v JSON, ki vam bo zagotovila koristne podrobnosti o oddaji sporočila.

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"
      }
    ]
  }
}
Povežite svojo prehodnico SMS z mobilnim omrežjem in ustvarite uporabniški račun HTTP API

Predvidevamo, da ste že namestili Ozeki SMS Gateway, in da ste povezali z mobilnim omrežjem. Da boste lahko pošiljali SMS-e na mobilni telefon iz Delphija, morate nastaviti uporabniški račun HTTP API v Ozeki SMS Gateway.

Video 1 - Kako nastaviti uporabniški račun HTTP API (Video vadnica)

Kako poslati SMS iz Delphija z uporabo API-ja za SMS v Delphi (Video vadnica)

Ta video vam pokaže, kako prenesti datoteko SendSms.delphi.zip s te strani in kako njeno vsebino prenesti v Delphi studio. Če gledate video, boste opazili, da je vsebina SendSms.delphi zip datoteke postavljena na namizje Windows. Videli boste tudi, da dvokliknemo na projektno datoteko SendSms.dproj, da odpremo projekt.

Primer SMS v Delphi: SendSms.dproj

V tej rešitvi je samo en projekt: SendSms.dproj in dve datoteki: SendSms.dpr in Ozeki.Libs.Rest.pas.

Slika 3 - SendSms.dproj

Kako preveriti, ali je SMS sprejel uporabnik HTTP

Po oddaji SMS-a je dobro preveriti vašo prehodnico SMS, da vidite, kaj je prejela. Dnevnik lahko preverite tako, da odprete podrobnosti uporabnika HTTP iz konzole za upravljanje Ozeki SMS Gateway. Naslednji video vam pokaže, kaj morate iskati.

Video 3 - Pošiljanje SMS s kodo Delphi zgoraj (Video vadnica)

Končni korak pri preverjanju postopka je pregled dnevnikov mobilnega omrežnega povezave. Morda boste morali vklopiti beleženje v nastavitvah povezave, preden pošljete sporočilo, da boste videli dnevnike. Če je beleženje omogočeno, boste videli telefonsko številko in besedilo sporočila, ki ste ga poslali.

Video 4 - Kako preizkusiti, ali je bila zahteva sprejeta s strani SMPP odjemalca (Video vadnica)

Kako izgleda prejemanje SMS sporočila na Androidu (Video vadnica)

V tem videu vam bomo pokazali, kako izgleda prejemanje SMS sporočila na Androidu. Video je dolg le 18 sekund, vendar lahko na njem vidite celoten proces. Začel se bo z običajno domačo stranjo Android. Videli boste obvestilo za SMS in odprto aplikacijo Sporočila z vidnim sporočilom.

Video 5 - Prejeto SMS sporočilo na mobilnem telefonu (Video vadnica)

Povzetek

Ta članek vam je pokazal najenostavnejši način za pošiljanje SMS-jev iz Delphija. Če ste prebrali to vadnico, veste, kako ustvariti uporabnika HTTP SMS API v Ozeki SMS Gateway, da lahko pošiljate SMS-e iz Delphija. Ena od mnogih prednosti te rešitve je, da lahko dani primer SMS-ja v Delphi uporabite in spremenite v katerem koli od svojih projektov.

Najdete lahko več dokumentov, ki ponujajo druge programe kode Delphi, izkoristite vsako priložnost in jih preučite. Če želite to storitev Ozeki SMS Gateway uporabljati v širšem krogu, pojdite na članek Kako prenesti najnovejšo enoto Delphi SMS API z Githuba in izvedite več.

Prenesite Ozeki SMS Gateway zdaj in nastavite sistem!

More information