Jak poslat SMS z Perlu

Nejjednodušší způsob, jak poslat SMS z Perlu, je použít vestavěné HTTP/Rest SMS API Ozeki SMS Gateway. Když použijete toto API, budete posílat SMS zprávy pomocí HTTP Post požadavku na SMS bránu. HTTP Post požadavek bude obsahovat zprávu formátovanou v json formátu. SMS brána pošle tuto SMS na cílové telefonní číslo a vrátí HTTP 200 OK odpověď na váš požadavek.

jak poslat sms z perl
Obrázek 1 - Jak poslat SMS z Perlu

Perl kód pro odeslání SMS na mobil

Ukázkový kód Perl SMS níže ukazuje, jak můžete posílat SMS pomocí http rest sms api Ozeki SMS Gateway s využitím knihovny Perl Ozeki.Libs.Rest. Tato knihovna je poskytována zdarma a můžete ji používat a upravovat v jakémkoli vašem projektu.

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 } = "Ahoj světe!";

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

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

print($result->stringify);
	

Jak použít příklad Perl SMS:

Tento příklad Perl SMS lze použít v jakékoli Perl aplikaci. Pro použití je nutné přidat knihovnu Ozeki.Libs.Rest do vašeho projektu. Poté, co je knihovna přidána, musíte vložit direktivu using Ozeki.Libs.Rest; do hlavičkové části vašeho Perl zdrojového kódu. To vám umožní používat třídy poskytované knihovnou Ozeki.Libs.Rest. Můžete použít třídu Message k vytvoření SMS. Třídu MessageApi můžete použít k odeslání SMS na SMS bránu. SMS brána přepošle vaši zprávu do mobilní sítě buď přes bezdrátové připojení nebo přes internet.

Stáhnout SendSms.pl

Zdrojový kód vysvětlený v tomto článku lze stáhnout, použít a upravit zdarma.
Stáhnout: SendSms.pl.zip (76.0Kb)

Co je v souboru SendSms.pl.zip?

Soubor SendSms.pl.zip obsahuje knihovnu Ozeki.Libs.Rest, která vám poskytuje všechny nástroje potřebné k odesílání a přijímání SMS zpráv. V zipu také najdete soubor SendSms.pl, který obsahuje ukázkový kód, který vám ukáže, jak odeslat SMS. Tento ukázkový kód je uveden níže.

Obrázek 2 - Co je uvnitř SendSms.pl.zip

Závislosti

Pro použití knihovny Ozeki::Libs::Rest musíte nainstalovat několik modulů:

Ubuntu

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

Kód 1 - Jak nainstalovat závislosti na Linuxu

Jak nainstalovat závislosti Perlu v Linuxu (Video návod)

V tomto videu vám ukážeme, jak nainstalovat závislosti Perlu na Linux OS. Video začne otevřením terminálu a skončí s nainstalovanými závislostmi. Video je dlouhé pouze 1:10, ale proces je vysvětlen podrobně. Pokud sledujete celé video, nebudete mít problém kroky zopakovat.

Video 1 - Jak nainstalovat závislosti Perlu v Linuxu (Video návod)

Windows

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

Kód 2 - Jak nainstalovat závislosti na Windows

Jak nainstalovat závislosti Perlu na Windows (Video návod)

V tomto videu vám ukážeme, jak nainstalovat závislosti Perlu na Windows OS. Video začne otevřením příkazového řádku a skončí s nainstalovanými závislostmi. Video je dlouhé pouze 46 sekund, ale proces je vysvětlen podrobně. Proces je snadný, takže s pomocí tohoto videa nebudete mít problém kroky následovat.

Video 2 - Jak nainstalovat závislosti Perlu na Windows (Video návod)

Jak poslat SMS z Perlu (Jednoduchý návod)

Pro odeslání SMS z Perlu:

  1. Nainstalujte HTTP API uživatele
  2. Povolte Logování komunikačních událostí na záložce Pokročilé
  3. Stáhněte a rozbalte soubor SendSms.pl.zip
  4. Otevřete soubor sendsms.pl v libovolném textovém editoru
  5. Spusťte aplikaci Ozeki SMS Gateway
  6. Spusťte Perl kód SendSms.pl v příkazovém řádku
  7. Zkontrolujte logy, zda byla SMS odeslána

Nainstalujte Ozeki SMS Gateway a vytvořte uživatele HTTP API

Abyste mohli odesílat SMS z Perlu, nejprve musíte nainstalovat Ozeki SMS Gateway. SMS bránu lze nainstalovat na stejný počítač, kde vyvíjíte svůj Perl kód v programu Windows Poznámkový blok nebo Visual Studio Code. Po instalaci je dalším krokem připojení Ozeki SMS Gateway k mobilní síti. Můžete vytvoření uživatele HTTP SMS API. Vytvořte uživatele s uživatelským jménem "http_user" a heslem "qwe123", aby příklad fungoval bez úprav.

Po nastavení prostředí můžete spustit svůj Perl kód.

URL HTTP API pro odesílání SMS z Perlu

Pro odesílání SMS z Perlu musí váš Perl odeslat HTTP požadavek na SMS bránu. API URL je uvedeno níže. Všimněte si, že IP adresa (127.0.0.1) by měla být nahrazena IP adresou vaší SMS brány. Pokud je Ozeki SMS Gateway nainstalována na stejném počítači, kde běží Perl SMS aplikace, může to být 127.0.0.1. Pokud je nainstalována na jiném počítači, měla by to být IP adresa toho počítače.

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

HTTP autentizace pro odesílání SMS z Perlu

Pro ověření Perl SMS klienta musíte odeslat uživatelské jméno a heslo v base64 kódovaném řetězci na server v HTTP požadavku. Použitý formát je: base64(username+":"+password). V Perlu můžete pro toto kódování použít následující kód:

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

Například, pokud zakódujete uživatelské jméno 'http_user' a heslo 'qwe123', získáte následující base64 kódovaný řetězec: aHR0cF91c2VyOnF3ZTEyMw==. Pro odeslání

Hlavička HTTP požadavku pro odesílání SMS z Perlu

Pro odeslání SMS zpráv musíte do HTTP požadavku zahrnout následující řádky jako hlavičky. Všimněte si, že zahrnujeme typ obsahu a autorizační hlavičku.

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

HTTP požadavek pro odesílání SMS z Perlu

Pro odeslání SMS vaše Perl aplikace odešle HTTP požadavek podobný tomu níže. Všimněte si, že tento požadavek obsahuje část HTTP hlavičky a část HTTP těla. HTTP tělo je řetězec zakódovaný v JSON. Obsahuje číslo příjemce a text zprávy.

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": []
		}
	]
}
	

HTTP odpověď přijatá Perl SMS příkladem

Jakmile SMS brána obdrží tento požadavek, vygeneruje HTTP odpověď. HTTP odpověď bude obsahovat stavový kód, který indikuje, zda byl požadavek na odeslání SMS úspěšný nebo ne. Také vrátí strukturu zakódovanou v JSON, která vám poskytne užitečné informace o odeslání zprávy.

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"
	    }
	  ]
	}
}
	

Připojte svou SMS bránu k mobilní síti a vytvořte uživatelský účet HTTP API

Předpokládáme, že jste již nainstalovali Ozeki SMS Gateway a připojili jste ho k mobilní síti. Abyste mohli odesílat SMS na mobilní telefon z Perlu, musíte v Ozeki SMS Gateway nastavit uživatelský účet HTTP API. V tomto videu vám vysvětlíme proces vytvoření nového uživatelského účtu HTTP API. Video začne otevřením aplikace Ozeki SMS Gateway a provede vás celým procesem vytvoření uživatelského účtu HTTP API. Během procesu se naučíte, jak nakonfigurovat nového uživatele a jak zapnout možnost logování. Video je dlouhé pouze 30 sekund a velmi podrobně vysvětluje celý proces. Nebudete mít žádný problém pochopit jednotlivé kroky.

Video 3 - Jaký je proces vytvoření nového uživatelského účtu HTTP API (Video návod)

Jak odeslat SMS z Perlu pomocí Perl SMS API (Video návod)

Toto video vám ukáže, jak stáhnout soubor SendSms.pl.zip z této stránky a jak otevřít soubor SendSms.pl v poznámkovém bloku. Pokud se podíváte na video, všimnete si, že obsah SendSms.pl zipu je umístěn na ploše Windows. Uvidíte také, že otevíráme soubor SendSms.pl pomocí poznámkového bloku Windows.

Video 4 - Jak stáhnout a nastavit výše uvedené řešení

Příklad SMS v Perlu: SendSms.pl

Na obrázku 1 můžete vidět zdrojový kód příkladu projektu. Pokud jste obeznámeni s programovacím jazykem Perl, můžete kód upravit podle svých představ. Tento kód odešle SMS na telefonní číslo uložené v proměnné toAddress, s textem uloženým v proměnné Text.

Obrázek 3 - Soubor SendSms.pl

Jak ověřit, že SMS byla přijata HTTP uživatelem

Po odeslání SMS je dobré zkontrolovat vaši SMS bránu, abyste viděli, co přijala. Protokol můžete zkontrolovat otevřením podrobností HTTP uživatele z konzoly pro správu Ozeki SMS Gateway. Následující video vám ukáže, na co se zaměřit.

Video 5 - Jak odeslat SMS s výše uvedeným kódem v Perlu (Video návod)

Jak ověřit, že SMS byla odeslána do mobilní sítě

Posledním krokem při ověřování postupu je podívat se na protokoly připojení k mobilní síti. Možná budete muset před odesláním zprávy zapnout protokolování v konfiguraci připojení, abyste viděli protokoly. Pokud je protokolování povoleno, uvidíte telefonní číslo a text odeslané zprávy.

Video 6 - Jak otestovat, zda byla žádost přijata SMPP klientem (Video návod)

Jak vypadá přijetí SMS na telefonu s Androidem (Video návod)

V tomto videu uvidíte, jak vypadá přijetí SMS zprávy na zařízení s Androidem. Začne to běžnou domovskou stránkou Androidu. Uvidíte vyskočit oznámení a poté otevřenou aplikaci Zprávy s viditelnou SMS. Video je dlouhé pouze 18 sekund, ale zachycuje celý proces.

Video 7 - Jak vypadá přijetí SMS zprávy na zařízení s Androidem (Video návod)

Závěr

Tento průvodce měl za cíl ukázat, jak odesílat SMS v Perlu s pomocí Ozeki SMS Gateway. Pokud bylo vše pečlivě přečteno, zasílání zpráv vašim zákazníkům v Perlu s Ozeki SMS Gateway by nemělo způsobovat žádné problémy. Je třeba zdůraznit, že Ozeki SMS Gateway umožňuje ukládat SMS zprávy do databáze a nabízí různé možnosti reportování, které poskytují více informací o SMS připojení.

Pokračujte ve čtení na stránce s návody Ozeki, kde najdete více informací o tématech, jako je plánování SMS v Perlu.

Jediné, co teď zbývá, je stáhnout Ozeki SMS Gateway a začít pracovat!

More information