Cum să trimiți SMS din Perl

Cea mai simplă metodă de a trimite SMS din Perl este utilizarea API-ului HTTP/Rest SMS integrat al Ozeki SMS Gateway. Când folosești acest API, vei trimite mesaje SMS prin efectuarea unei cereri HTTP Post către gateway-ul SMS. Cererea HTTP Post va conține un mesaj formatat în format json. Gateway-ul SMS va trimite acest SMS către telefonul destinatar și va returna un răspuns HTTP 200 OK la cererea ta.

cum să trimiți sms din perl
Figura 1 - Cum să trimiți SMS din Perl

Cod Perl pentru a trimite SMS pe mobil

Exemplul de cod Perl pentru SMS de mai jos demonstrează cum poți trimite SMS folosind API-ul http rest sms al Ozeki SMS Gateway cu ajutorul bibliotecii Perl Ozeki.Libs.Rest. Această bibliotecă este oferită gratuit și o poți folosi și modifica în oricare dintre proiectele tale.

SendSms.pl
use Ozeki::Libs::Rest::Configuration;
use Ozeki::Libs::Rest::MessageApi;
use Ozeki::Libs::Rest::Message;

my $configuration = new Ozeki::Libs::Rest::Configuration();
$configuration->{ Username } = "http_user";
$configuration->{ Password } = "qwe123";
$configuration->{ ApiUrl } = "http://127.0.0.1:9509/api";

my $msg = new Ozeki::Libs::Rest::Message();
$msg->{ ToAddress } = "+36201111111";
$msg->{ Text } = "Hello world!";

my $api = new Ozeki::Libs::Rest::MessageApi($configuration);

my $result = $api->Send($msg);

print($result->stringify);
	

Cum să folosești exemplul Perl pentru SMS:

Acest exemplu Perl pentru SMS poate fi folosit în orice aplicație Perl. Pentru a-l utiliza, trebuie să adaugi biblioteca Ozeki.Libs.Rest în proiectul tău. După ce biblioteca este adăugată, trebuie să incluzi directiva using Ozeki.Libs.Rest; în secțiunea de antet a codului sursă Perl. Acest lucru îți va permite să folosești clasele furnizate de biblioteca Ozeki.Libs.Rest. Poți folosi clasa Message pentru a crea SMS-ul. Poți folosi clasa MessageApi pentru a trimite SMS-ul către gateway-ul SMS. Gateway-ul SMS va transmite mesajul tău către rețeaua mobilă fie printr-o conexiune wireless, fie prin Internet.

Descarcă SendSms.pl

Codul sursă explicat în acest articol poate fi descărcat, folosit și modificat gratuit.
Descarcă: SendSms.pl.zip (76.0Kb)

Ce conține fișierul SendSms.pl.zip?

Fișierul SendSms.pl.zip conține biblioteca Ozeki.Libs.Rest, care îți oferă toate instrumentele necesare pentru a trimite și primi mesaje SMS. De asemenea, vei găsi fișierul SendSms.pl în arhivă, care conține codul exemplu pentru a-ți arăta cum să trimiți un SMS. Acest cod exemplu este listat mai jos.

Figura 2 - Ce conține SendSms.pl.zip

Dependințe

Pentru a folosi biblioteca Ozeki::Libs::Rest, trebuie să instalezi câteva module:

Ubuntu

$ sudo apt-get install libdatetime-perl
$ cpan
$ install JSON
$ install UUID::Generator::PurePerl
$ install UUID::Object
	

Codul 1 - Cum să instalezi dependințele pe Linux

Cum să instalezi dependințele Perl pe Linux (Tutorial video)

În acest videoclip, îți arătăm cum să instalezi dependințele Perl pe sistemul de operare Linux. Videoclipul va începe cu deschiderea unui terminal și se va încheia cu dependințele instalate. Videoclipul durează doar 1:10, dar explică procesul în detaliu. Dacă urmărești întregul videoclip, nu vei avea probleme în a recrea pașii.

Videoclipul 1 - Cum să instalezi dependințele Perl pe Linux (Tutorial video)

Windows

cpanm DateTime
cpanm UUID::Generator::PurePerl
cpanm UUID::Object
cpanm JSON
	

Codul 2 - Cum să instalezi dependințele pe Windows

Cum să instalezi dependințele Perl pe Windows (Tutorial video)

În acest videoclip, îți arătăm cum să instalezi dependințele Perl pe sistemul de operare Windows. Videoclipul va începe cu deschiderea unui prompt de comandă și se va încheia cu toate dependințele instalate. Videoclipul durează doar 46 de secunde, dar explică procesul în detaliu. Procesul este ușor de realizat, așa că, cu ajutorul acestui videoclip, nu vei avea probleme în a urma pașii.

Videoclipul 2 - Cum să instalezi dependințele Perl pe Windows (Tutorial video)

Cum să trimiți SMS din Perl (Ghid simplu)

Pentru a trimite SMS din Perl:

  1. Instalează un utilizator HTTP API
  2. Activează Log communication events în fila Advanced
  3. Descarcă apoi extrage fișierul SendSms.pl.zip
  4. Deschide fișierul sendsms.pl în orice editor de text
  5. Lansează aplicația Ozeki SMS Gateway
  6. Rulează codul Perl SendSms.pl în promptul de comandă
  7. Verifică jurnalele pentru a vedea dacă SMS-ul a fost trimis

Instalați Ozeki SMS Gateway și creați un utilizator HTTP API

Pentru a putea trimite SMS din Perl, mai întâi trebuie să instalați Ozeki SMS Gateway. Gateway-ul SMS poate fi instalat pe același computer unde dezvoltați codul Perl în Windows Notepad sau Visual Studio Code. După instalare, următorul pas este să conectați Ozeki SMS Gateway la rețeaua mobilă. Puteți creați un utilizator HTTP SMS API. Creați un utilizator cu numele de utilizator "http_user" și parola "qwe123" pentru ca exemplul să funcționeze fără modificări.

După ce mediul este configurat, puteți rula codul Perl.

URL-ul API HTTP pentru a trimite SMS din Perl

Pentru a trimite SMS din Perl, aplicația Perl va trebui să facă o cerere HTTP către gateway-ul SMS. URL-ul API este afișat mai jos. Rețineți că adresa IP (127.0.0.1) ar trebui să fie înlocuită cu adresa IP a gateway-ului dvs. SMS. Dacă Ozeki SMS Gateway este instalat pe același computer unde rulează aplicația Perl SMS, aceasta poate fi 127.0.0.1. Dacă este instalat pe un computer diferit, ar trebui să fie adresa IP a acelui computer.

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

Autentificarea HTTP pentru a trimite SMS din Perl

Pentru a autentifica clientul Perl SMS, trebuie să trimiteți numele de utilizator și parola într-un șir codificat base64 către server într-o cerere HTTP. Formatul utilizat este: base64(nume_utilizator+":"+parolă). În Perl puteți utiliza următorul cod pentru a face această codificare:

my ($self, $Username, $Password) = @_;
my $Username_Password = "${Username}:${Password}";
my $Username_Password_encoded = encode_base64($Username_Password);
return "Basic ${Username_Password_encoded}";
	

De exemplu, dacă codificați numele de utilizator 'http_user' și parola 'qwe123', veți obține următorul șir codificat base64: aHR0cF91c2VyOnF3ZTEyMw==. Pentru a trimite

Antetul cererii HTTP pentru a trimite SMS din Perl

Pentru a trimite mesajele SMS, trebuie să includeți următoarele linii ca antete în cererea HTTP. Rețineți că includem un tip de conținut și un antet de autorizare.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
	

Cererea HTTP pentru a trimite SMS din Perl

Pentru a trimite SMS, aplicația Perl va trimite o cerere HTTP similară cu cea de mai jos. Rețineți că această cerere conține o parte de antet HTTP și o parte de corp HTTP. Corpul HTTP este un șir de date codificat JSON. Acesta conține numărul destinatarului și textul mesajului.

POST /api?action=sendmsg HTTP/1.1
Connection: TE, close
Content-Length: 341
Content-Type: application/json; charset=utf8
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
Te: deflate,gzip;q=0.3
User-Agent: libwww-perl/6.52

{
	"messages": [
		{
			"message_id": "fa32293f-db00-11eb-804d-ffacbeab4160",
			"to_address": "+36201111111",
			"text": "Hello world!",
			"create_date": "2021-07-02T06:44:40",
			"valid_until": "2021-07-09T06:44:40",
			"time_to_send": "2021-07-02T06:44:40",
			"submit_report_requested": true,
			"delivery_report_requested": true,
			"view_report_requested": true,
			"tags": []
		}
	]
}
	

Răspunsul HTTP primit de exemplul Perl SMS

Odată ce gateway-ul SMS primește această cerere, va genera un răspuns HTTP. Răspunsul HTTP va conține un cod de stare, pentru a indica dacă cererea de trimitere SMS a fost reușită sau nu. De asemenea, va returna o structură codificată JSON pentru a vă oferi detalii utile despre trimiterea mesajului.

HTTP/1.1 200 OK
User-Agent: OZEKI 10.3.123 (www.myozeki.com)
Content-Type: application/json; charset=utf8
Last-Modified: Tue, 29 Jun 2021 11:48:38 GMT
Server: 10/10.3.123
Transfer-Encoding: chunked

{
	"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": "fa32293f-db00-11eb-804d-ffacbeab4160",
	      "from_station": "%",
	      "to_address": "+36201111111",
	      "to_station": "%",
	      "text": "Hello world!",
	      "create_date": "2021-07-02 06:44:40",
	      "valid_until": "2021-07-09 06:44:40",
	      "time_to_send": "2021-07-02 06:44:40",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    }
	  ]
	}
}
	

Conectați-vă gateway-ul SMS la rețeaua mobilă și creați un cont de utilizator HTTP API

Presupunem că ați instalat deja Ozeki SMS Gateway și l-ați conectat la rețeaua mobilă. Pentru a putea trimite SMS către un telefon mobil din Perl, trebuie să configurați un cont de utilizator HTTP API în Ozeki SMS Gateway. În acest videoclip, vă vom explica procesul de creare a unui nou cont de utilizator HTTP API. Videoclipul va începe cu deschiderea aplicației Ozeki SMS Gateway și vă va ghida până la crearea contului de utilizator HTTP API. În acest proces, veți învăța cum să configurați un nou utilizator și cum să activați opțiunea de înregistrare a jurnalelor. Videoclipul durează doar 30 de secunde și explică procesul într-un mod foarte detaliat. Nu veți avea probleme în a înțelege pașii.

Video 3 - Care este procesul de creare a unui nou cont de utilizator HTTP API (Tutorial video)

Cum să trimiteți SMS din Perl folosind API-ul SMS Perl (Tutorial video)

Acest videoclip vă arată cum să descărcați fișierul SendSms.pl.zip de pe această pagină și cum să deschideți fișierul SendSms.pl în Notepad. Dacă urmăriți videoclipul, veți observa că conținutul arhivei SendSms.pl este plasat pe desktop-ul Windows. De asemenea, veți vedea că deschidem fișierul SendSms.pl cu Notepad din Windows.

Video 4 - Cum să descărcați și să configurați soluția de mai sus

Exemplu SMS Perl: SendSms.pl

În Figura 1, puteți vedea codul sursă al proiectului exemplu. Dacă sunteți familiarizat cu limbajul de programare Perl, nu ezitați să modificați codul după preferințele dvs. Acest cod va trimite un SMS către numărul de telefon stocat în variabila toAddress, cu textul stocat în variabila Text.

Figura 3 - Fișierul SendSms.pl

Cum să verificați dacă SMS-ul a fost acceptat de utilizatorul HTTP

După ce SMS-ul a fost trimis, este o idee bună să verificați gateway-ul dvs. SMS, pentru a vedea ce a primit. Puteți verifica jurnalul deschizând detaliile utilizatorului HTTP din consola de management Ozeki SMS Gateway. Următorul videoclip vă arată ce să căutați.

Video 5 - Cum să trimiteți SMS cu codul Perl de mai sus (Tutorial video)

Cum să verificați dacă SMS-ul a fost trimis către rețeaua mobilă

Pasul final în verificarea procedurii este să aruncați o privire asupra jurnalelor conexiunii la rețeaua mobilă. Este posibil să fie nevoie să activați înregistrarea jurnalelor în configurația conexiunii înainte de a trimite mesajul pentru a vedea jurnalele. Dacă înregistrarea jurnalelor este activată, veți vedea numărul de telefon și textul mesajului pe care l-ați trimis.

Video 6 - Cum să testați dacă cererea a fost acceptată de clientul SMPP (Tutorial video)

Cum arată primirea unui SMS pe un telefon Android (Tutorial video)

În acest videoclip, veți vedea cum arată primirea unui mesaj SMS pe un dispozitiv Android. Videoclipul va începe cu o pagină principală obișnuită Android. Veți vedea notificarea apărând și apoi aplicația Mesaje deschisă cu SMS-ul vizibil în ea. Videoclipul durează doar 18 secunde, dar prezintă întregul proces.

Video 7 - Cum arată primirea unui mesaj SMS pe un dispozitiv Android (Tutorial video)

Concluzie

Acest ghid a fost menit să arate cum să trimiteți SMS în Perl cu ajutorul Ozeki SMS Gateway. Dacă totul a fost citit cu atenție, mesageria cu clienții dvs. în Perl cu Ozeki SMS Gateway nu ar trebui să creeze nicio problemă. Trebuie subliniat că Ozeki SMS Gateway vă permite să înregistrați mesajele SMS într-o bază de date și oferă diverse capabilități de raportare pentru a furniza mai multe informații despre conexiunea SMS.

Continuați să citiți pe pagina de tutoriale Ozeki, unde puteți găsi mai multe informații despre subiecte precum programarea SMS în Perl.

Singurul lucru care rămâne de făcut acum este să descărcați Ozeki SMS Gateway și să începeți să lucrați!

More information