Jak odbierać SMS-y z Tcl/Tk

Najprostszym sposobem na odbieranie SMS-ów z Tcl/Tk jest użycie wbudowanego interfejsu HTTP/Rest SMS API Ozeki SMS Gateway. Kiedy używasz tego API, będziesz wysyłać wiadomości SMS poprzez wysłanie żądania HTTP Get do bramki SMS. Żądanie HTTP Get będzie zawierać nazwę folderu, z którego chcemy odbierać SMS-y. Bramka SMS wyśle wiadomości do klienta API Tcl/Tk i zwróci odpowiedź HTTP 200 OK na twoje żądanie.

jak odbierać sms-y z tcl tk
Rysunek 1 - Jak odbierać SMS-y z Tcl/Tk

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

Poniższy przykładowy kod SMS Tcl/Tk demonstruje, jak możesz odbierać SMS-y za pomocą interfejsu HTTP REST SMS API Ozeki SMS Gateway, korzystając z biblioteki Tcl/Tk Ozeki.Libs.Rest. Ta biblioteka jest dostarczana bezpłatnie i możesz jej używać oraz modyfikować w dowolnych swoich projektach.

ReceiveSms.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 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 ]
}
	

Jak używać przykładu SMS Tcl/Tk:

Ten przykład SMS Tcl/Tk 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 korzystać 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 ReceiveSms.tcl

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

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

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

katalog odbierania sms tcl
Rysunek 2 - Co znajduje się w ReceiveSms.tcl.zip

Jak wysyłać SMS-y z Tcl/Tk (Proste wskazówki)

Aby wysyłać SMS-y z Tcl/Tk:

  1. Zainstaluj użytkownika HTTP API
  2. Włącz Logowanie zdarzeń komunikacyjnych na karcie Zaawansowane
  3. Pobierz i zainstaluj bibliotekę Tcllib
  4. Pobierz, a następnie rozpakuj plik ReceiveSms.tcl.zip
  5. Otwórz plik ReceiveSms.tcl w edytorze tekstu
  6. Uruchom aplikację Ozeki SMS Gateway
  7. Uruchom kod Tcl/Tk ReceiveSms.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 utworzenie konta 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 wysyłać SMS-y z Tcl/Tk, twoja aplikacja Tcl/Tk będzie musiała wysłać żądanie HTTP do bramki SMS. URL API jest pokazany poniżej. Zauważ, ż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 SMS Tcl/Tk, 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 postaci zakodowanej base64 do serwera w żądaniu HTTP. Format używany 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-ów z Tcl/Tk

Aby wysłać wiadomości SMS, musisz uwzględnić następujące linie jako nagłówki w żądaniu HTTP. Zauważ, że uwzględniamy typ zawartości i nagłówek Autoryzacji.

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

Żądanie HTTP do wysłania SMS-a z Tcl/Tk

Aby przesłać SMS, Twoja aplikacja Tcl/Tk wyśle żądanie HTTP podobne do poniższego. Zauważ, że to żądanie zawiera nagłówek HTTP, który zawiera nazwę folderu, z którego chcemy odbierać wiadomości, oraz zakodowane w base64 nazwę użytkownika i hasło.

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
	

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

Gdy brama SMS odbierze to żądanie, wygeneruje odpowiedź HTTP. Odpowiedź HTTP będzie zawierać kod statusu, wskazujący, czy żądanie wysłania SMS-a zakończyło się sukcesem czy nie. Zwróci również strukturę zakodowaną w JSON, aby dostarczyć przydatne informacje dotyczące przesłania 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 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"
          }
        ]
      }
    ]
  }
}
	

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

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

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

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

Poniższy przykładowy kod jest częścią pliku ReceiveSms.tcl.zip. W pliku zip znajdziesz dwa pliki: ReceiveSms.tcl oraz Ozeki.Libs.Rest.tcl.

jak odbierać sms za pomocą tcl
Rysunek 3 - ReceiveSms.tcl

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

Po przesłaniu SMS-a warto sprawdzić w bramie SMS, co zostało odebrane. Możesz sprawdzić log, otwierając szczegóły użytkownika HTTP w konsoli zarządzania bramą SMS Ozeki. Poniższy film pokazuje, na co zwrócić uwagę. Film rozpoczyna się od otwartego kodu i koń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 log 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 sprawdzić, czy SMS został zaakceptowany przez użytkownika HTTP (Samouczek wideo)

More information