Jak poslat SMS z Tcl/Tk

Nejjednodušší způsob, jak poslat SMS z Tcl/Tk, je použít vestavěné HTTP/Rest SMS API Ozeki SMS Gateway. Při použití tohoto API budete odesílat SMS zprávy odesláním HTTP Post požadavku na SMS bránu. HTTP Post požadavek bude obsahovat zprávu formátovanou ve formátu json. SMS brána odešle tuto SMS na telefon příjemce a vrátí HTTP 200 OK odpověď na váš požadavek.

jak poslat sms z tcl tk
Obrázek 1 - Jak poslat SMS z Tcl/Tk

Tcl/Tk kód pro odeslání SMS na mobil

Ukázka kódu Tcl/Tk pro SMS níže ukazuje, jak můžete odesílat SMS pomocí HTTP REST SMS API Ozeki SMS Gateway s využitím knihovny Tcl/Tk Ozeki.Libs.Rest. Tato knihovna je poskytována zdarma a můžete ji používat a upravovat v jakémkoli svém projektu.

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 ]
	

Jak použít příklad Tcl/Tk pro SMS:

Tento příklad Tcl/Tk pro SMS lze použít v jakékoli aplikaci Tcl/Tk. Pro použití musíte přidat soubor Ozeki.Libs.Rest.tcl do svého projektu. Poté, co je soubor přidán, musíte do hlavičkové části svého zdrojového kódu Tcl/Tk vložit příkaz source Ozeki.Libs.Rest.tcl. To vám umožní používat třídy poskytované knihovnou Ozeki.Libs.Rest. Třídu Message můžete použít 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ď prostřednictvím bezdrátového připojení nebo přes internet.

Stáhnout SendSms.tcl

Zdrojový kód vysvětlený v tomto článku lze stáhnout a používat a upravovat zdarma.
Stáhnout: SendSms.tcl.zip (4.07Kb)

Co je v souboru SendSms.tcl.zip?

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

adresář pro odesílání sms tcl
Obrázek 2 - Co je uvnitř SendSms.tcl.zip

Jak poslat SMS z Tcl/Tk (Jednoduchý návod)

Pro odeslání SMS z Tcl/Tk:

  1. Nainstalujte uživatele HTTP API
  2. Povolte Logování komunikačních událostí na kartě Pokročilé
  3. Stáhněte a nainstalujte knihovnu Tcllib
  4. Stáhněte a rozbalte soubor SendSms.tcl.zip
  5. Otevřete soubor SendSms.tcl v textovém editoru
  6. Spusťte aplikaci Ozeki SMS Gateway
  7. Spusťte kód Tcl/Tk SendSms.tcl v terminálu
  8. Zkontrolujte logy, zda byla SMS odeslána

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

Abyste mohli odesílat SMS z Tcl/Tk, musíte nejprve nainstalovat Ozeki SMS Gateway. SMS bránu lze nainstalovat na stejný počítač, kde vyvíjíte svůj kód Tcl/Tk ve Visual studiu. Po instalaci je dalším krokem připojení Ozeki SMS Gateway k mobilní síti. Můžete odeslat testovací SMS z grafického rozhraní Ozeki a ověřit, že vaše připojení k mobilní síti funguje. Posledním krokem k přípravě vašeho prostředí je 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 kód Tcl/Tk.

URL HTTP API pro odesílání SMS z Tcl/Tk

Pro odesílání SMS z Tcl/Tk bude vaše Tcl/Tk muset odeslat HTTP požadavek na SMS bránu. API URL je uvedeno níže. Poznámka: 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ěží Tcl/Tk 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 tohoto počítače.

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

HTTP autentizace pro odesílání SMS z Tcl/Tk

Pro ověření Tcl/Tk 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 Tcl/Tk můžete pro toto kódování použít následující kód:

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

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 Tcl/Tk

Pro odesílání SMS zpráv musíte do hlaviček HTTP požadavku zahrnout následující řádky. Poznámka: Zahrnujeme hlavičku Content-Type a Authorization.

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

HTTP požadavek pro odeslání SMS z Tcl/Tk

Pro odeslání SMS bude vaše aplikace Tcl/Tk odesílat 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 dat zakódovaný v JSON. Obsahuje číslo příjemce a text zprá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 odpověď přijatá příkladem SMS v Tcl/Tk

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é detaily o odeslání zprá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"
      }
    ]
  }
}
	

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

Předpokládáme, že jste již nainstalovali Ozeki SMS Gateway, a že jste připojili k mobilní síti. Abyste mohli odesílat SMS na mobilní telefon z Tcl/Tk, musíte nastavit účet HTTP API uživatele v Ozeki SMS Gateway.

Vytvoření nového uživatele (Video návod)

Toto video vám ukáže, jak nastavit nový účet HTTP API uživatele. Začíná na domovské stránce Ozeki SMS Gateway a končí na kartě Události nového uživatele. Video vám ukáže, jak vytvořit a nakonfigurovat nového uživatele. Skvělé na tomto videu je, že trvá pouze 30 sekund, ale obsahuje všechny informace, které potřebujete k vytvoření nového uživatele HTTP API.

Video 1 - Jak nastavit účet HTTP API uživatele (Video návod)

Jak nainstalovat Tcllib v Linuxu

Pokud používáte Linuxový počítač, musíte před použitím knihovny Ozeki.Libs.Rest nainstalovat knihovnu Tcllib. V následujícím videu vám ukážu, jak nainstalovat knihovnu Tcllib pomocí terminálu a fossilu. Tuto část můžete přeskočit, pokud jste již Tcllib nainstalovali.

Video 2 - Jak nainstalovat Tcllib na Linuxu (Video návod)

Kroky k instalaci knihovny Tcllib na Linuxu

  1. Pro instalaci knihovny Tcllib budeme potřebovat něco, co se nazývá fossil. Pro instalaci fossilu na linuxový počítač budete potřebovat tento příkaz:

    sudo apt-install fossil
    			
  2. Po instalaci fossilu můžeme pokračovat klonováním knihovny Tcllib pomocí následujícího příkazu:

    cd Desktop
    fossil clone http://core.tcl.tk/tcllib tcllib.fossil
    			
  3. Po naklonování knihovny Tcllib bychom měli vytvořit adresář a extrahovat knihovnu do něj.

    mkdir tcllib
    cd tcllib
    fossil open ../tcllib.fossil
    			
  4. Poté můžeme knihovnu Tcllib nainstalovat pomocí následujícího příkazu:

    sudo tclsh installer.tcl
    			
  5. Po dokončení procesu instalace můžeme knihovnu otestovat následujícím příkazem:

    tclsh
    % package require uuid // 1.0.7
    % uuid::uuid generate // c004b0d6-f983-4169-8748-31013dfd24b2
    			
Jak poslat SMS z Tcl/Tk pomocí Tcl/Tk SMS API (Video návod)

Toto video vám ukáže, jak stáhnout soubor SendSms.tcl.zip z této stránky a jak jeho obsah otevřít v textovém editoru. Pokud se podíváte na video, všimnete si, že obsah souboru SendSms.tcl.zip je umístěn na plochu. Uvidíte také, že dvakrát klikneme na soubor SendSms.tcl, abychom otevřeli Tcl skript.

Video 3 - Jak stáhnout a spustit ukázkový projekt (Video návod)

Tcl/Tk SMS příklad: SendSms.tcl

Níže uvedený příklad kódu je součástí souboru SendSms.tcl.zip. V zipu najdete dva soubory: SendSms.tcl a Ozeki.Libs.Rest.tcl.

jak poslat sms pomocí tcl
Obrázek 3 - SendSms.tcl

Jak ověřit, že SMS byla přijata HTTP uživatelem (Video návod)

Po odeslání SMS je dobré zkontrolovat SMS bránu, abyste viděli, co přijala. Protokol můžete zkontrolovat otevřením detailů HTTP uživatele v konzoli pro správu Ozeki SMS Gateway. Následující video vám ukáže, na co se zaměřit. Video začne otevřeným kódem a skončí detaily odeslané zprávy. Dozvíte se, jak spustit projekt, jak projekt vypadá během běhu a jak vypadá protokol po jeho dokončení. Video je dlouhé pouze 42 sekund a je snadno srozumitelné. Nebudete mít problém jej sledovat.

Video 4 - Jak poslat SMS pomocí výše uvedeného Tcl/Tk kódu (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.

Otestujte, zda byla žádost přijata (Video návod)

V následujícím videu uvidíte, jak zkontrolovat, zda byl SMPP klient úspěšný při odeslání vaší zprávy. Dozvíte se, jak otevřít záložku událostí SMPP uživatele a na co se zaměřit. Video je dlouhé pouze 18 sekund, ale bude velmi užitečné.

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

SMS přijatá na telefonu (Video návod)

V následujícím videu uvidíte, jak vypadá příchozí zpráva odeslaná z Ozeki SMS Gateway. Začne domovskou obrazovkou android telefonu a skončí otevřenou zprávou. Je dlouhé pouze 18 sekund a můžete vidět celý proces přijetí zprávy.

Video 6 - Jak vypadá přijetí SMS zprávy na mobilním telefonu (Video návod)

Shrnutí

Výše uvedený průvodce vysvětlil kroky pro odesílání SMS z Tcl/Tk. Jak bylo vidět, Ozeki vám poskytuje všechny nástroje potřebné pro doručování zpráv, takže pokud byly kroky pečlivě dodrženy, odesílání zpráv z Tcl/Tk již není problém. Ozeki SMS Gateway hraje obrovskou roli v doručování, bez tohoto programu byste se k mobilním uživatelům nedostali. Je důležité poznamenat, že Ozeki SMS Gateway funguje v jakékoli zemi, takže zprávy lze tímto řešením odesílat mezinárodně.

Nezastavujte se zde, projděte si stránku s návody Ozeki a dozvíte se více o příjmu SMS v Tcl/Tk.

Vaším dalším krokem by mělo být stažení Ozeki SMS Gateway a můžete začít pracovat!

More information