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.
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.tclsource 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)
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.
Na odoslanie SMS z Tcl/Tk:
- Nainštalujte používateľa HTTP API
- Povoľte Logovanie komunikačných udalostí na karte Pokročilé
- Stiahnite a nainštalujte knižnicu Tcllib
- Stiahnite a rozbaľte súbor SendSms.tcl.zip
- Otvorte súbor SendSms.tcl v textovom editore
- Spustite aplikáciu Ozeki SMS Gateway
- Spustite Tcl/Tk kód SendSms.tcl v termináli
- Skontrolujte logy, či bola SMS odoslaná
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/TkNa 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
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/TkNa 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 } ] }
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" } ] } }
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.
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.
Kroky na inštaláciu knižnice Tcllib na Linuxe
-
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
-
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
-
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
-
Potom môžeme nainštalovať knižnicu Tcllib pomocou nasledujúceho príkazu:
sudo tclsh installer.tcl
-
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.
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
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.
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é.
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.
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
- Td/Tk send SMS with the HTTP rest API (code sample)
- Td/Tk send multiple SMS with the HTTP rest API (code sample)
- Td/Tk schedule SMS with the HTTP rest API (code sample)
- Tcl/Tk receive SMS with the HTTP rest API (code sample)
- Tcl/Tk delete SMS with the HTTP rest API (code sample)
- How to download the latest Tcl/Tk SMS library from Github