Hogyan lehet SMS-t fogadni Tcl/Tk-ből

A legegyszerűbb módja az SMS fogadásának Tcl/Tk-ből az Ozeki SMS Gateway beépített HTTP/Rest SMS API-jának használata. Amikor ezt az API-t használod, SMS üzeneteket küldhetsz HTTP Get kérések kiadásával az SMS gateway felé. A HTTP Get kérés tartalmazni fogja annak a mappának a nevét, amelyből az SMS-eket szeretnénk fogadni. Az SMS gateway elküldi az üzeneteket a Tcl/Tk API kliensnek, és egy HTTP 200 OK választ küld a kérésedre.

hogyan lehet sms-t fogadni tcl tk-ből
1. ábra - Hogyan lehet SMS-t fogadni Tcl/Tk-ből

Tcl/Tk kód SMS küldésére mobilra

Az alábbi Tcl/Tk SMS kód minta bemutatja, hogyan lehet SMS-eket fogadni az Ozeki SMS Gateway http rest sms api-jával a Tcl/Tk Ozeki.Libs.Rest könyvtár segítségével. Ez a könyvtár ingyenesen elérhető számodra, és bármely projektben felhasználhatod és módosíthatod.

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

A Tcl/Tk SMS példa használata:

Ez a Tcl/Tk SMS példa bármely Tcl/Tk alkalmazásban használható. A használathoz hozzá kell adnod az Ozeki.Libs.Rest.tcl fájlt a projektedhez. A fájl hozzáadása után a source Ozeki.Libs.Rest.tcl direktívát a Tcl/Tk forráskódod fejléc részébe kell elhelyezned. Ez lehetővé teszi az Ozeki.Libs.Rest könyvtár által nyújtott osztályok használatát. Az Message osztály segítségével létrehozhatod az SMS-t. A MessageApi osztály segítségével elküldheted az SMS-t az SMS gatewaynek. Az SMS gateway továbbítja az üzenetedet a mobil hálózatba vezeték nélküli kapcsolaton vagy az interneten keresztül.

ReceiveSms.tcl letöltése

A cikkben ismertetett forráskód letölthető, felhasználható és módosítható ingyenesen.
Letöltés: ReceiveSms.tcl.zip (4.1Kb)

Mi található a ReceiveSms.tcl.zip fájlban?

A ReceiveSms.tcl.zip fájl tartalmazza az Ozeki.Libs.Rest könyvtárat, amely minden szükséges eszközt biztosít az SMS-ek küldéséhez és fogadásához. A zip-ben megtalálod a ReceiveSms projektet is, amely tartalmazza a példakódot, amely bemutatja, hogyan küldj SMS-t. Ez a példakód az alábbiakban látható.

receive sms tcl directory
2. ábra - Mi található a ReceiveSms.tcl.zip fájlban

Hogyan küldj SMS-t Tcl/Tk-ből (Egyszerű útmutató)

SMS küldése Tcl/Tk-ből:

  1. Telepíts egy HTTP API felhasználót
  2. Engedélyezd a Kommunikációs események naplózását a Speciális lapon
  3. Töltsd le és telepítsd a Tcllib könyvtárat
  4. Töltsd le, majd csomagold ki a ReceiveSms.tcl.zip fájlt
  5. Nyisd meg a ReceiveSms.tcl fájlt egy szövegszerkesztőben
  6. Indítsd el az Ozeki SMS Gateway alkalmazást
  7. Futtasd a ReceiveSms.tcl Tcl/Tk kódot a terminálban
  8. Ellenőrizd a naplókat, hogy az SMS elküldődött-e

Ozeki SMS Gateway telepítése és HTTP API felhasználó létrehozása

Ahhoz, hogy SMS-t tudj küldeni Tcl/Tk-ből, először telepítened kell az Ozeki SMS Gateway-t. Az SMS gateway telepíthető ugyanarra a számítógépre, ahol a Tcl/Tk kódodat fejleszted Visual Studio-ban. A telepítés után a következő lépés az, hogy csatlakoztad az Ozeki SMS Gateway-t a mobil hálózathoz. létrehozol egy HTTP SMS API felhasználói fiókot. Hozz létre egy felhasználót "http_user" felhasználónévvel és "qwe123" jelszóval, hogy a példa módosítás nélkül működjön.

Miután a környezet beállításra került, futtathatod a Tcl/Tk kódodat.

HTTP API URL SMS küldéséhez Tcl/Tk-ből

Ahhoz, hogy SMS-t küldj Tcl/Tk-ből, a Tcl/Tk alkalmazásodnak HTTP kérést kell küldenie az SMS gatewaynek. Az API URL az alábbiakban látható. Fontos, hogy az IP cím (127.0.0.1) helyére az SMS gateway IP címét írd. Ha az Ozeki SMS Gateway ugyanarra a számítógépre van telepítve, ahol a Tcl/Tk SMS alkalmazás fut, ez lehet 127.0.0.1. Ha másik számítógépre van telepítve, akkor annak az IP címét kell megadni.

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

HTTP hitelesítés SMS küldéséhez Tcl/Tk-ből

A Tcl/Tk SMS kliens hitelesítéséhez a felhasználónevet és a jelszót base64 kódolású karakterláncként kell elküldened a szervernek egy HTTP kérésben. A használt formátum: base64(felhasználónév+":"+jelszó). Tcl/Tk-ben a következő kódot használhatod a kódoláshoz:

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

Például, ha a 'http_user' felhasználónevet és a 'qwe123' jelszót kódolod, a következő base64 kódolású karakterláncot kapod: aHR0cF91c2VyOnF3ZTEyMw==.

HTTP kérés fejléc SMS küldéséhez Tcl/Tk-ből

Az SMS üzenetek küldéséhez a következő sorokat kell tartalmaznia a HTTP kérés fejlécének. Figyelj arra, hogy tartalomtípust és egy Authorization fejlécet is tartalmazunk.

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

HTTP kérés SMS küldéséhez Tcl/Tk-ből

Az SMS beküldéséhez a Tcl/Tk alkalmazásod egy olyan HTTP kérést küld, mint az alábbi. Figyelj arra, hogy ez a kérés tartalmaz egy HTTP fejlécet, amely tartalmazza annak a mappának a nevét, amelyből üzeneteket szeretnénk fogadni, valamint a base64 kódolású felhasználónevet és jelszót.

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
	

HTTP válasz, amelyet a Tcl/Tk SMS példa kap

Miután az SMS gateway megkapja ezt a kérést, generál egy HTTP választ. A HTTP válasz tartalmazni fog egy állapotkódot, amely jelzi, hogy az SMS beküldési kérés sikeres volt-e vagy sem. Emellett egy JSON kódolású struktúrát is visszaad, amely hasznos részleteket nyújt az üzenet beküldéséről.

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"
          }
        ]
      }
    ]
  }
}
	

Hogyan küldj SMS-t Tcl/Tk-ből a Tcl/Tk SMS API segítségével (Videó útmutató)

Ez a videó bemutatja, hogyan töltheted le a ReceiveSms.tcl.zip fájlt erről az oldalról, és hogyan nyithatod meg a tartalmát egy szövegszerkesztőben. Ha megnézed a videót, észreveszed, hogy a ReceiveSms.tcl zip tartalma az Asztalra kerül. Azt is látni fogod, hogy duplán kattintunk a ReceiveSms.tcl fájlra a tcl szkript megnyitásához.

1. videó - Hogyan töltsd le és futtasd a példa projektet (Videó útmutató)

Tcl/Tk SMS példa: ReceiveSms.tcl

Az alábbi példakód a ReceiveSms.tcl.zip fájl része. A zip-ben két fájl található: a ReceiveSms.tcl és az Ozeki.Libs.Rest.tcl.

hogyan fogadj sms-t tcl használatával
3. ábra - ReceiveSms.tcl

Hogyan ellenőrizd, hogy az SMS-t elfogadta-e a HTTP felhasználó (Videó útmutató)

Miután az SMS beküldésre került, jó ötlet ellenőrizni az SMS gatewayt, hogy lássuk, mit kapott. A naplót az Ozeki SMS Gateway kezelőfelületén az HTTP felhasználó részleteinek megnyitásával ellenőrizheted. A következő videó bemutatja, hogy mire kell figyelni. A videó a megnyitott kóddal kezdődik, és az elküldött üzenet részleteivel ér véget. Megtanulod, hogyan indítsd el a projektet, hogyan néz ki a projekt futás közben, és hogyan néz ki a naplófájl utána. A videó mindössze 42 másodperc hosszú és könnyen érthető. Nem lesz gondod a követésével.

2. videó - Hogyan ellenőrizd, hogy az SMS-t elfogadta-e a HTTP felhasználó (Videó útmutató)

More information