Ako prijímať SMS z Tcl/Tk
Najjednoduchší spôsob, ako prijímať SMS z Tcl/Tk, je použiť vstavanú HTTP/Rest SMS API Ozeki SMS Gateway. Keď použijete toto API, budete odosielať SMS správy pomocou HTTP Get požiadavky na SMS bránu. HTTP Get požiadavka bude obsahovať názov priečinka, z ktorého chceme prijímať SMS. SMS brána odošle správy Tcl/Tk API klientovi a vráti HTTP 200 OK odpoveď na vašu požiadavku.
Ukážka kódu Tcl/Tk pre SMS nižšie demonštruje, ako môžete prijímať 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.
ReceiveSms.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 api [ MessageApi new $configuration ] set result [ $api downloadIncoming ] puts [ $result toString ] for { set i 0 } { $i < [ llength [ $result getMessages ] ] } { incr i } { puts [ [ lindex [ $result getMessages ] $i ] toString ] }
Ako použiť príklad Tcl/Tk pre SMS:
Tento príklad Tcl/Tk pre SMS môže byť použitý v akejkoľvek aplikácii Tcl/Tk. 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 zdrojového kódu Tcl/Tk. 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ď prostredníctvom bezdrôtového pripojenia alebo cez internet.
Stiahnuť ReceiveSms.tcl
Zdrojový kód vysvetlený v tomto článku je možné stiahnuť, použiť a upravovať bezplatne.
Stiahnuť: ReceiveSms.tcl.zip (4.1Kb)
Súbor ReceiveSms.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. Nájdete tu aj projekt ReceiveSms, 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 ReceiveSms.tcl.zip
- Otvorte súbor ReceiveSms.tcl v textovom editore
- Spustite aplikáciu Ozeki SMS Gateway
- Spustite kód Tcl/Tk ReceiveSms.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 kód Tcl/Tk v Visual Studio. Po inštalácii je ďalším krokom pripojenie Ozeki SMS Gateway k mobilnej sieti. Môžete odoslať testovaciu SMS z grafického rozhrania Ozeki na overenie, či vaše pripojenie k mobilnej sieti funguje. Posledným krokom pri príprave vášho prostredia je vytvorenie používateľa HTTP SMS API. Vytvorte používateľa s používateľským menom "http_user" a heslom "qwe123", aby príklad fungoval bez úprav.
Po nastavení prostredia môžete spustiť svoj kód Tcl/Tk.
URL HTTP API na odosielanie SMS z Tcl/TkNa odosielanie SMS z Tcl/Tk bude vaša aplikácia Tcl/Tk musieť odoslať HTTP požiadavku na SMS bránu. API URL je uvedené nižšie. Upozorňujeme, že 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ží vaša aplikácia Tcl/Tk pre SMS, 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 klienta Tcl/Tk pre SMS je potrebné odoslať používateľské meno a heslo v reťazci zakódovanom do base64 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 reťazec zakódovaný do base64: aHR0cF91c2VyOnF3ZTEyMw==. Na odoslanie
Hlavička HTTP 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. Upozorňujeme, že zaraďujeme 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. Všimnite si, že táto požiadavka obsahuje HTTP hlavičku, ktorá obsahuje názov priečinka, z ktorého chceme prijímať správy, a zakódované používateľské meno a heslo v base64.
GET /api?action=receivemsg&folder=inbox 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
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. Vráti tiež štruktúru zakódovanú v JSON, ktorá poskytne 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: Wed, 04 Aug 2021 08:44:43 GMT Server: 10/10.3.124 Microsoft-HTTPAPI/2.0 User-Agent: OZEKI 10.3.124 (www.myozeki.com) Access-Control-Allow-Origin: * Date: Wed, 04 Aug 2021 10:11:34 GMT Connection: close { "http_code": 200, "response_code": "SUCCESS", "response_msg": "", "data": { "folder": "inbox", "limit": "1000", "data": [ { "message_id": "82469c20-8f97-4c72-9d2f-d8224d30722a", "from_connection": "http_user@localhost", "from_address": "+36203333333", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello world 3", "create_date": "2021-08-04 12:11:28", "valid_until": "2021-08-11 12:11:28", "time_to_send": "2021-08-04 12:11:28", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] }, { "message_id": "5172aae1-f708-12ca-9115-2d202a084a13", "from_connection": "http_user@localhost", "from_address": "+36202222222", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello world 2", "create_date": "2021-08-04 12:11:28", "valid_until": "2021-08-11 12:11:28", "time_to_send": "2021-08-04 12:11:28", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] }, { "message_id": "d5843a47-0ff6-ed10-8875-1c2e6ef8cefc", "from_connection": "http_user@localhost", "from_address": "+36201111111", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello world 1", "create_date": "2021-08-04 12:11:28", "valid_until": "2021-08-11 12:11:28", "time_to_send": "2021-08-04 12:11:28", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] } ] } }
Toto video vám ukáže, ako si stiahnuť súbor ReceiveSms.tcl.zip z tejto stránky a ako si jeho obsah stiahnuť do textového editora. Ak sledujete video, všimnete si, že obsah ReceiveSms.tcl zipu je umiestnený na pracovnej ploche. Uvidíte tiež, že dvakrát klikneme na súbor ReceiveSms.tcl, aby sme otvorili tcl skript.
Príklad SMS v Tcl/Tk: ReceiveSms.tcl
Príklad kódu nižšie je súčasťou súboru ReceiveSms.tcl.zip. V zipu nájdete dva súbory: ReceiveSms.tcl a Ozeki.Libs.Rest.tcl.
Po odoslaní SMS je dobré skontrolovať vašu 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 brány. Nasledujúce video vám ukáže, čo hľadať. Video začne otvoreným kódom a skončí detailmi 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 je ľahko zrozumiteľné. Nebudete mať problém ho sledovať.
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