Ako poslať SMS z Tcl/Tk

Najjednoduchší spôsob, ako poslať SMS z Tcl/Tk, je použiť vstavanú HTTP/Rest SMS API Ozeki SMS Gateway. Keď použijete toto API, budete posielať SMS správy pomocou HTTP POST požiadavky na SMS bránu. HTTP POST požiadavka bude obsahovať správu formátovanú v json formáte. SMS brána pošle túto SMS na telefón príjemcu a vráti HTTP 200 OK odpoveď na vašu požiadavku.

ako poslať sms z tcl tk
Obrázok 1 - Ako poslať SMS z Tcl/Tk

Tcl/Tk kód na odoslanie SMS na mobil

Ukážka Tcl/Tk kódu pre SMS nižšie demonštruje, ako môžete poslať SMS pomocou HTTP REST SMS API Ozeki SMS Gateway s použitím knižnice Tcl/Tk Ozeki.Libs.Rest. Táto knižnica je poskytovaná bezplatne a môžete ju používať a upravovať v akomkoľvek z vašich projektov.

SendSms.tcl
source Ozeki.Libs.Rest.tcl


set configuration [ Configuration new ]
$configuration setUsername "http_user" 
$configuration setPassword "qwe123"
$configuration setApiUrl "http://127.0.0.1:9509/api"

set msg [ Message new ]
$msg setToAddress "+36201111111"
$msg setText "Hello world!"

set api [ MessageApi new $configuration ]

set result [ $api send $msg ]

puts [ $result toString ]
	

Ako použiť Tcl/Tk príklad pre SMS:

Tento Tcl/Tk príklad pre SMS môže byť použitý v akejkoľvek Tcl/Tk aplikácii. Na použitie je potrebné pridať súbor Ozeki.Libs.Rest.tcl do vášho projektu. Po pridaní súboru musíte vložiť direktívu source Ozeki.Libs.Rest.tcl do hlavičkovej časti vášho Tcl/Tk zdrojového kódu. To vám umožní používať triedy poskytované knižnicou Ozeki.Libs.Rest. Môžete použiť triedu Message na vytvorenie SMS. Môžete použiť triedu MessageApi na odoslanie SMS na SMS bránu. SMS brána prepošle vašu správu do mobilnej siete buď cez bezdrôtové pripojenie alebo cez internet.

Stiahnuť SendSms.tcl

Zdrojový kód vysvetlený v tomto článku môže byť stiahnutý a používaný a upravovaný bezplatne.
Stiahnuť: SendSms.tcl.zip (4.07Kb)

Čo je v súbore SendSms.tcl.zip?

Súbor SendSms.tcl.zip obsahuje knižnicu Ozeki.Libs.Rest, ktorá vám poskytuje všetky potrebné nástroje na odosielanie a prijímanie SMS správ. V zip súbore nájdete aj projekt SendSms, ktorý obsahuje ukážkový kód, ktorý vám ukáže, ako odoslať SMS. Tento ukážkový kód je uvedený nižšie.

send sms tcl adresár
Obrázok 2 - Čo je vo vnútri SendSms.tcl.zip

Ako poslať SMS z Tcl/Tk (Jednoduché pokyny)

Na odoslanie SMS z Tcl/Tk:

  1. Nainštalujte používateľa HTTP API
  2. Povoľte Logovanie komunikačných udalostí na karte Pokročilé
  3. Stiahnite a nainštalujte knižnicu Tcllib
  4. Stiahnite a rozbaľte súbor SendSms.tcl.zip
  5. Otvorte súbor SendSms.tcl v textovom editore
  6. Spustite aplikáciu Ozeki SMS Gateway
  7. Spustite Tcl/Tk kód SendSms.tcl v termináli
  8. Skontrolujte logy, či bola SMS odoslaná
Nainštalujte Ozeki SMS Gateway a vytvorte používateľa HTTP API

Na odosielanie SMS z Tcl/Tk je potrebné najprv nainštalovať Ozeki SMS Gateway. SMS bránu je možné nainštalovať na rovnakom počítači, kde vyvíjate svoj Tcl/Tk kód v Visual Studio. Po inštalácii je ďalším krokom pripojenie Ozeki SMS Gateway k mobilnej sieti. Môžete odoslať testovaciu SMS z Ozeki GUI na overenie, či vaše mobilné pripojenie funguje. Posledným krokom pri príprave vášho prostredia je vytvorenie používateľa HTTP SMS API. Vytvorte používateľa s menom "http_user" a heslom "qwe123", aby príklad fungoval bez úprav.

Po nastavení prostredia môžete spustiť svoj Tcl/Tk kód.

HTTP API URL na odoslanie SMS z Tcl/Tk

Na odoslanie SMS z Tcl/Tk bude vaša Tcl/Tk aplikácia musieť odoslať HTTP požiadavku na SMS bránu. API URL je uvedené nižšie. Poznámka: IP adresa (127.0.0.1) by mala byť nahradená IP adresou vašej SMS brány. Ak je Ozeki SMS Gateway nainštalovaný na rovnakom počítači, kde beží Tcl/Tk SMS aplikácia, môže to byť 127.0.0.1. Ak je nainštalovaný na inom počítači, mala by to byť IP adresa toho počítača.

http://127.0.0.1:9509/api?action=rest
	
HTTP autentifikácia na odoslanie SMS z Tcl/Tk

Na autentifikáciu Tcl/Tk SMS klienta je potrebné odoslať používateľské meno a heslo v base64 kódovanom reťazci na server v HTTP požiadavke. Používa sa formát: base64(používateľské meno+":"+heslo). V Tcl/Tk môžete na toto kódovanie použiť nasledujúci kód:

set usernamePassword "$username:$password"
set usernamePasswordEncoded [ binary encode base64 $usernamePassword ]
return "Basic $usernamePasswordEncoded"
	

Napríklad, ak zakódujete používateľské meno 'http_user' a heslo 'qwe123', dostanete nasledujúci base64 kódovaný reťazec: aHR0cF91c2VyOnF3ZTEyMw==. Na odoslanie

HTTP hlavička požiadavky na odoslanie SMS z Tcl/Tk

Na odoslanie SMS správ je potrebné zahrnúť nasledujúce riadky ako hlavičky do HTTP požiadavky. Poznámka: Zahrňte hlavičku Content-Type a Authorization.

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

HTTP požiadavka na odoslanie SMS z Tcl/Tk

Na odoslanie SMS bude vaša aplikácia Tcl/Tk posielať HTTP požiadavku podobnú nižšie uvedenej. Upozorňujeme, že táto požiadavka obsahuje časť HTTP hlavičky a časť tela HTTP. Telo HTTP je reťazec dát zakódovaný v JSON. Obsahuje číslo príjemcu a text správy.

POST /api?action=sendmsg HTTP/1.1
Host: 127.0.0.1:9509
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 10.0) http/2.9.0 Tcl/8.6.9
Connection: close
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Accept: */*
Accept-Encoding: gzip,deflate,compress
Content-Type: application/json
Content-Length: 320

{
	"messages": [
		{
			"message_id": "48de1284-aea2-442b-a8cd-45112153a94f",
			"to_address": "+36201111111",
			"text": "Hello world!",
			"create_date": "2021-08-03T14:36:27",
			"valid_until": "2021-08-10T14:36:27",
			"time_to_send": "2021-08-03T14:36:27",
			"submit_report_requested": true,
			"delivery_report_requested": true,
			"view_report_requested": true
		}
	]
}
	
HTTP odpoveď prijatá príkladom SMS v Tcl/Tk

Keď SMS brána prijme túto požiadavku, vygeneruje HTTP odpoveď. HTTP odpoveď bude obsahovať stavový kód, ktorý indikuje, či bola požiadavka na odoslanie SMS úspešná alebo nie. Bude tiež vracať štruktúru zakódovanú v JSON, ktorá poskytuje užitočné informácie o odoslaní správy.

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf8
Last-Modified: Mon, 02 Aug 2021 13:44:10 GMT
Server: 10/10.3.124 Microsoft-HTTPAPI/2.0
User-Agent: OZEKI 10.3.124 (www.myozeki.com)
Access-Control-Allow-Origin: *
Date: Tue, 03 Aug 2021 12:36:27 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": "48de1284-aea2-442b-a8cd-45112153a94f",
        "from_station": "%",
        "to_address": "+36201111111",
        "to_station": "%",
        "text": "Hello world!",
        "create_date": "2021-08-03 14:36:27",
        "valid_until": "2021-08-10 14:36:27",
        "time_to_send": "2021-08-03 14:36:27",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      }
    ]
  }
}
	
Pripojte svoju SMS bránu k mobilnej sieti a vytvorte používateľský účet HTTP API

Predpokladáme, že ste už nainštalovali Ozeki SMS Gateway a že ste pripojili ju k mobilnej sieti. Aby ste mohli odosielať SMS na mobilný telefón z Tcl/Tk, musíte nastaviť používateľský účet HTTP API v Ozeki SMS Gateway.

Vytvorte nového používateľa (Video návod)

Toto video vám ukáže, ako nastaviť nový používateľský účet HTTP API. Začína na domovskej stránke Ozeki SMS Gateway a končí na karte Udalosti nového používateľa. Video vám ukáže, ako vytvoriť a nakonfigurovať nového používateľa. Skvelé na tomto videu je, že trvá len 30 sekúnd, ale obsahuje všetky informácie, ktoré potrebujete na vytvorenie nového používateľa HTTP API.

Video 1 - Ako nastaviť používateľský účet HTTP API (Video návod)

Ako nainštalovať Tcllib v Linuxe

Ak používate počítač s Linuxom, musíte pred začatím používania knižnice Ozeki.Libs.Rest nainštalovať knižnicu Tcllib. V nasledujúcom videu vám ukážem, ako nainštalovať knižnicu Tcllib pomocou terminálu a fossil. Túto časť môžete preskočiť, ak ste už Tcllib nainštalovali.

Video 2 - Ako nainštalovať Tcllib na Linuxe (Video návod)

Kroky na inštaláciu knižnice Tcllib na Linuxe

  1. Na inštaláciu knižnice Tcllib budeme potrebovať niečo, čo sa nazýva fossil. Na inštaláciu fossil na linuxový počítač budete potrebovať tento príkaz:

    sudo apt-install fossil
    			
  2. Po inštalácii fossilu môžeme pokračovať klonovaním knižnice Tcllib pomocou nasledujúceho príkazu:

    cd Desktop
    fossil clone http://core.tcl.tk/tcllib tcllib.fossil
    			
  3. Po naklonovaní knižnice Tcllib by sme mali vytvoriť adresár a extrahovať knižnicu do neho.

    mkdir tcllib
    cd tcllib
    fossil open ../tcllib.fossil
    			
  4. Potom môžeme nainštalovať knižnicu Tcllib pomocou nasledujúceho príkazu:

    sudo tclsh installer.tcl
    			
  5. Po dokončení inštalačného procesu môžeme otestovať knižnicu pomocou nasledujúceho príkazu:

    tclsh
    % package require uuid // 1.0.7
    % uuid::uuid generate // c004b0d6-f983-4169-8748-31013dfd24b2
    			

Ako poslať SMS z Tcl/Tk pomocou Tcl/Tk SMS API (Video návod)

Toto video vám ukáže, ako stiahnuť súbor SendSms.tcl.zip z tejto stránky a ako stiahnuť jeho obsah do textového editora. Ak sledujete video, všimnete si, že obsah SendSms.tcl zipu je umiestnený na pracovnej ploche. Uvidíte tiež, že dvakrát klikneme na súbor SendSms.tcl, aby sme otvorili Tcl skript.

Video 3 - Ako stiahnuť a spustiť príkladový projekt (Video návod)

Tcl/Tk príklad SMS: SendSms.tcl

Príklad kódu nižšie je súčasťou súboru SendSms.tcl.zip. V zip nájdete dva súbory: SendSms.tcl a Ozeki.Libs.Rest.tcl

ako poslať sms pomocou tcl
Obrázok 3 - SendSms.tcl

Ako skontrolovať, že SMS bola prijatá HTTP používateľom (Video návod)

Po odoslaní SMS je dobré skontrolovať svoju SMS bránu, aby ste videli, čo prijala. Protokol môžete skontrolovať otvorením detailov HTTP používateľa v konzole na správu Ozeki SMS Gateway. Nasledujúce video vám ukáže, čo hľadať. Video začína otvoreným kódom a končí detailami odoslanej správy. Dozviete sa, ako spustiť projekt, ako projekt vyzerá počas behu a ako vyzerá protokolový súbor po jeho ukončení. Video je dlhé len 42 sekúnd a ľahko zrozumiteľné. Nebudete mať problém s jeho sledovaním.

Video 4 - Ako poslať SMS pomocou Tcl/Tk kódu vyššie (Video návod)

Ako skontrolovať, že SMS bola odoslaná do mobilnej siete

Posledným krokom pri overovaní postupu je pozrieť sa na protokoly mobilného pripojenia. Možno budete musieť zapnúť protokolovanie v konfigurácii pripojenia pred odoslaním správy, aby ste videli protokoly. Ak je protokolovanie zapnuté, uvidíte telefónne číslo a text správy, ktorú ste odoslali.

Otestujte, či bola požiadavka prijatá (Video návod)

V nasledujúcom videu uvidíte, ako skontrolovať, či bol SMPP klient úspešný pri odosielaní vašej správy. Dozviete sa, ako otvoriť kartu udalostí SMPP používateľa a čo hľadať. Video je dlhé len 18 sekúnd, ale bude veľmi užitočné.

Video 5 - Ako otestovať, či bola požiadavka prijatá SMPP klientom (Video návod)

SMS prijatá na telefóne (Video návod)

V nasledujúcom videu uvidíte, ako vyzerá prichádzajúca správa odoslaná z Ozeki SMS Gateway. Začína sa domovskou obrazovkou android telefónu a končí otvorenou správou. Je dlhé len 18 sekúnd a môžete vidieť celý proces prijatia správy.

Video 6 - Ako vyzerá prijatie SMS správy na mobilnom telefóne (Video návod)

Zhrnutie

Sprievodca vyššie vysvetlil kroky na odoslanie SMS z Tcl/Tk. Ako bolo vidieť, Ozeki vám poskytuje všetky potrebné nástroje na doručenie správ, takže ak boli kroky dôsledne dodržané, odosielanie správ z Tcl/Tk už nie je problém. Ozeki SMS Gateway zohráva obrovskú úlohu pri doručovaní, bez tohto programu by ste sa nedostali k mobilným používateľom. Dôležité je poznamenať, že Ozeki SMS Gateway funguje v každej krajine, takže správy môžu byť odosielané medzinárodne s týmto riešením.

Neskoncčite čítanie tu, prehľadajte stránku s návodmi Ozeki a dozviete sa viac o prijímaní SMS v Tcl/Tk.

Vašou ďalšou úlohou je stiahnuť si Ozeki SMS Gateway a nechať prácu začať!

More information