Jak wysłać wiele SMS-ów z Tcl/Tk

Najprostszym sposobem wysłania wielu SMS-ów z Tcl/Tk jest użycie wbudowanego interfejsu HTTP/Rest SMS API Ozeki SMS Gateway. Korzystając z tego API, wysyłasz wiadomości SMS poprzez wysłanie żądania HTTP Post do bramki SMS. Żądanie HTTP Post będzie zawierać wiadomość sformatowaną w formacie json. Bramka SMS wyśle tę wiadomość na telefon odbiorcy i zwróci odpowiedź HTTP 200 OK na Twoje żądanie.

jak wysłać wiele sms z tcl tk
Rysunek 1 - Jak wysłać wiele SMS-ów z Tcl/Tk

Kod Tcl/Tk do wysyłania SMS-ów na telefon

Poniższy przykładowy kod Tcl/Tk do wysyłania SMS-ów demonstruje, jak można wysłać wiele SMS-ów przy użyciu interfejsu HTTP REST SMS API Ozeki SMS Gateway z wykorzystaniem biblioteki Ozeki.Libs.Rest dla Tcl/Tk. Ta biblioteka jest dostarczana bezpłatnie i możesz jej używać oraz modyfikować w dowolnym z Twoich projektów.

SendMultipleSms.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 msg1 [ Message new ]
$msg1 setToAddress "+36201111111"
$msg1 setText "Hello world 1"

set msg2 [ Message new ]
$msg2 setToAddress "+36202222222"
$msg2 setText "Hello world 2"

set msg3 [ Message new ] 
$msg3 setToAddress "+36203333333"
$msg3 setText "Hello world 3"

set api [ MessageApi new $configuration ]

set messages [list]
lappend messages $msg1
lappend messages $msg2
lappend messages $msg3

set result [ $api send $messages ]

puts [ $result toString ]
	

Jak używać przykładu Tcl/Tk do wysyłania SMS-ów:

Ten przykład Tcl/Tk do wysyłania SMS-ów może być używany w dowolnej aplikacji Tcl/Tk. Aby go użyć, musisz dodać plik Ozeki.Libs.Rest.tcl do swojego projektu. Po dodaniu pliku, musisz umieścić dyrektywę source Ozeki.Libs.Rest.tcl w sekcji nagłówkowej swojego kodu źródłowego Tcl/Tk. To pozwoli Ci na korzystanie z klas dostarczonych przez bibliotekę Ozeki.Libs.Rest. Możesz użyć klasy Message do tworzenia SMS-ów. Możesz użyć klasy MessageApi do wysyłania SMS-ów do bramki SMS. Bramka SMS przekaże Twoją wiadomość do sieci komórkowej poprzez połączenie bezprzewodowe lub przez Internet.

Pobierz SendMultipleSms.tcl

Kod źródłowy omówiony w tym artykule można pobrać, używać i modyfikować bezpłatnie.
Pobierz: SendMultipleSms.tcl.zip (4.17Kb)

Co znajduje się w pliku SendMultipleSms.tcl.zip?

Plik SendMultipleSms.tcl.zip zawiera bibliotekę Ozeki.Libs.Rest, która dostarcza wszystkich niezbędnych narzędzi do wysyłania i odbierania wiadomości SMS. Znajdziesz tam również projekt SendMultipleSms, który zawiera przykładowy kod pokazujący jak wysłać SMS. Ten przykładowy kod jest wymieniony poniżej.

katalog wysyłania sms tcl
Rysunek 2 - Co znajduje się w SendMultipleSms.tcl.zip

Jak wysłać SMS z Tcl/Tk (Proste wskazówki)

Aby wysłać SMS z Tcl/Tk:

  1. Zainstaluj użytkownika HTTP API
  2. Włącz rejestrowanie zdarzeń komunikacyjnych w zakładce Zaawansowane
  3. Pobierz i zainstaluj bibliotekę Tcllib
  4. Pobierz, a następnie rozpakuj plik SendMultipleSms.tcl.zip
  5. Otwórz plik SendMultipleSms.tcl w edytorze tekstu
  6. Uruchom aplikację Ozeki SMS Gateway
  7. Uruchom kod Tcl/Tk SendMultipleSms.tcl w terminalu
  8. Sprawdź logi, aby zobaczyć, czy SMS został wysłany

Zainstaluj Ozeki SMS Gateway i utwórz użytkownika HTTP API

Aby móc wysyłać SMS-y z Tcl/Tk, najpierw musisz zainstalować Ozeki SMS Gateway. Bramka SMS może być zainstalowana na tym samym komputerze, na którym tworzysz swój kod Tcl/Tk w Visual Studio. Po instalacji kolejnym krokiem jest podłączenie Ozeki SMS Gateway do sieci komórkowej. Możesz wysłać testowego SMS-a z interfejsu Ozeki, aby sprawdzić, czy Twoje połączenie z siecią komórkową działa. Ostatnim krokiem przygotowania środowiska jest utworzenie użytkownika HTTP SMS API. Utwórz użytkownika z nazwą "http_user" i hasłem "qwe123", aby przykład działał bez modyfikacji.

Po skonfigurowaniu środowiska możesz uruchomić swój kod Tcl/Tk.

URL API HTTP do wysyłania SMS-ów z Tcl/Tk

Aby wysłać SMS z Tcl/Tk, Twoja aplikacja Tcl/Tk będzie musiała wysłać żądanie HTTP do bramki SMS. URL API jest pokazany poniżej. Należy zauważyć, że adres IP (127.0.0.1) powinien zostać zastąpiony adresem IP Twojej bramki SMS. Jeśli Ozeki SMS Gateway jest zainstalowany na tym samym komputerze, na którym działa aplikacja Tcl/Tk do wysyłania SMS-ów, może to być 127.0.0.1. Jeśli jest zainstalowany na innym komputerze, powinien to być adres IP tego komputera.

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

Uwierzytelnianie HTTP do wysyłania SMS-ów z Tcl/Tk

Aby uwierzytelnić klienta SMS Tcl/Tk, musisz wysłać nazwę użytkownika i hasło w zakodowanym ciągu base64 do serwera w żądaniu HTTP. Używany format to: base64(nazwa_użytkownika+":"+hasło). W Tcl/Tk możesz użyć następującego kodu do wykonania tego kodowania:

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

Na przykład, jeśli zakodujesz nazwę użytkownika 'http_user' i hasło 'qwe123', otrzymasz następujący zakodowany ciąg base64: aHR0cF91c2VyOnF3ZTEyMw==. Aby wysłać

Nagłówek żądania HTTP do wysyłania SMS z Tcl/Tk

Aby wysłać wiadomości SMS, należy dołączyć następujące linie jako nagłówki w żądaniu HTTP. Należy zauważyć, że zawieramy typ zawartości i nagłówek autoryzacji.

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

Żądanie HTTP do wysyłania SMS z Tcl/Tk

Aby przesłać SMS, Twoja aplikacja Tcl/Tk wyśle żądanie HTTP podobne do poniższego. Należy zauważyć, że to żądanie zawiera część nagłówka HTTP i część ciała HTTP. Ciało HTTP to ciąg danych zakodowany w formacie JSON. Zawiera numery odbiorców i teksty wiadomości.

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: 935

{
	"messages": [
		{
			"message_id": "dbaf5396-a220-424b-bb17-534dc6a92c34",
			"to_address": "+36201111111",
			"text": "Hello world 1",
			"create_date": "2021-08-04T10:28:14",
			"valid_until": "2021-08-11T10:28:14",
			"time_to_send": "2021-08-04T10:28:14",
			"submit_report_requested": true,
			"delivery_report_requested": true,
			"view_report_requested": true
		},
		{
			"message_id": "b884f2c3-555b-416e-bcd4-5d7c653ec3ba",
			"to_address": "+36202222222",
			"text": "Hello world 2",
			"create_date": "2021-08-04T10:28:14",
			"valid_until": "2021-08-11T10:28:14",
			"time_to_send": "2021-08-04T10:28:14",
			"submit_report_requested": true,
			"delivery_report_requested": true,
			"view_report_requested": true
		},
		{
			"message_id": "911092b2-4338-4dc7-97f6-1939a99779f7",
			"to_address": "+36203333333",
			"text": "Hello world 3",
			"create_date": "2021-08-04T10:28:14",
			"valid_until": "2021-08-11T10:28:14",
			"time_to_send": "2021-08-04T10:28:14",
			"submit_report_requested": true,
			"delivery_report_requested": true,
			"view_report_requested": true
		}
	]
}
	

Odpowiedź HTTP otrzymana przez przykład SMS w Tcl/Tk

Po otrzymaniu tego żądania brama SMS wygeneruje odpowiedź HTTP. Odpowiedź HTTP będzie zawierać kod statusu, aby wskazać, czy żądanie wysłania SMS zakończyło się sukcesem, czy nie. Zwróci również strukturę zakodowaną w formacie JSON, aby dostarczyć przydatne informacje o przesłaniu wiadomości.

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 08:28:14 GMT
Connection: close

{
  "http_code": 200,
  "response_code": "SUCCESS",
  "response_msg": "Messages queued for delivery.",
  "data": {
    "total_count": 3,
    "success_count": 3,
    "failed_count": 0,
    "messages": [
      {
        "message_id": "dbaf5396-a220-424b-bb17-534dc6a92c34",
        "from_station": "%",
        "to_address": "+36201111111",
        "to_station": "%",
        "text": "Hello world 1",
        "create_date": "2021-08-04 10:28:14",
        "valid_until": "2021-08-11 10:28:14",
        "time_to_send": "2021-08-04 10:28:14",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      },
      {
        "message_id": "b884f2c3-555b-416e-bcd4-5d7c653ec3ba",
        "from_station": "%",
        "to_address": "+36202222222",
        "to_station": "%",
        "text": "Hello world 2",
        "create_date": "2021-08-04 10:28:14",
        "valid_until": "2021-08-11 10:28:14",
        "time_to_send": "2021-08-04 10:28:14",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      },
      {
        "message_id": "911092b2-4338-4dc7-97f6-1939a99779f7",
        "from_station": "%",
        "to_address": "+36203333333",
        "to_station": "%",
        "text": "Hello world 3",
        "create_date": "2021-08-04 10:28:14",
        "valid_until": "2021-08-11 10:28:14",
        "time_to_send": "2021-08-04 10:28:14",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      }
    ]
  }
}
	

Jak wysłać SMS z Tcl/Tk za pomocą API SMS Tcl/Tk (Samouczek wideo)

Ten film pokazuje, jak pobrać plik SendMultipleSms.tcl.zip z tej strony i jak pobrać jego zawartość w edytorze tekstu. Jeśli obejrzysz film, zauważysz, że zawartość pliku zip SendMultipleSms.tcl jest umieszczana na Pulpicie. Zobaczysz również, że klikamy dwukrotnie na plik SendMultipleSms.tcl, aby otworzyć skrypt tcl.

Wideo 1 - Jak pobrać i uruchomić przykładowy projekt (Samouczek wideo)

Przykład SMS w Tcl/Tk: SendMultipleSms.tcl

Poniższy przykładowy kod jest częścią pliku SendMultipleSms.tcl.zip. W pliku zip można znaleźć dwa pliki: SendMultipleSms.tcl i Ozeki.Libs.Rest.tcl

jak wysłać wiele sms za pomocą tcl
Rysunek 3 - SendMultipleSms.tcl

Jak sprawdzić, czy SMS został zaakceptowany przez użytkownika HTTP (Samouczek wideo)

Po wysłaniu SMS-a warto sprawdzić bramkę SMS, aby zobaczyć, co otrzymała. Możesz sprawdzić log, otwierając szczegóły użytkownika HTTP z konsoli zarządzania Ozeki SMS Gateway. Poniższy film pokazuje, na co zwrócić uwagę. Film rozpocznie się od otwartego kodu i zakończy się szczegółami wysłanej wiadomości. Dowiesz się, jak uruchomić projekt, jak wygląda projekt podczas działania i jak wygląda plik dziennika po jego zakończeniu. Film trwa tylko 42 sekundy i jest łatwy do zrozumienia. Nie będziesz miał problemu z jego śledzeniem.

Wideo 2 - Jak wysłać wiele wiadomości SMS za pomocą kodu Tcl/Tk powyżej (Samouczek wideo)

More information