Hogyan küldjünk több SMS-t Tcl/Tk-ből

A legegyszerűbb módja több SMS küldésének Tcl/Tk-ből az Ozeki SMS Gateway beépített HTTP/Rest SMS API-jának használata. Ezt az API-t használva HTTP POST kérést küldhetsz az SMS gateway-nek. A HTTP POST kérés egy JSON formátumú üzenetet tartalmaz. Az SMS gateway továbbítja ezt az SMS-t a címzett telefonjára, és egy HTTP 200 OK választ küld vissza a kérésedre.

hogyan küldjünk több sms-t tcl tk-ből
1. ábra - Hogyan küldjünk több SMS-t 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 küldhetsz több SMS-t 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 használható, és bármilyen projektben felhasználható és módosítható.

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 ]
	

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

Ez a Tcl/Tk SMS példa bármilyen Tcl/Tk alkalmazásban használható. Használatához hozzá kell adni 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 elhelyezni. 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 hozhatod létre az SMS-t. A MessageApi osztály segítségével elküldheted az SMS-t az SMS gateway-nek. Az SMS gateway továbbítja az üzenetedet a mobilhálózatnak vezeték nélküli kapcsolaton vagy az interneten keresztül.

A SendMultipleSms.tcl letöltése

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

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

A SendMultipleSms.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 SendMultipleSms 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ó.

sms küldése tcl könyvtár
2. ábra - Mi található a SendMultipleSms.tcl.zip fájlban

Hogyan küldjünk 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. Kapcsold be a "Log communication events" opciót az Advanced lapon
  3. Töltsd le és telepítsd a Tcllib könyvtárat
  4. Töltsd le, majd csomagold ki a SendMultipleSms.tcl.zip fájlt
  5. Nyisd meg a SendMultipleSms.tcl fájlt egy szövegszerkesztőben
  6. Indítsd el az Ozeki SMS Gateway alkalmazást
  7. Futtasd a SendMultipleSms.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 Ozeki SMS Gateway csatlakoztatása a mobilhálózathoz. HTTP SMS API felhasználói fiók létrehozása. 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 van állítva, 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 gateway-nek. 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 maradhat 127.0.0.1. Ha másik számítógépre van telepítve, annak 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 jelszót base64 kódolású karakterláncként kell elküldeni a szervernek egy HTTP kérésben. A formátum: base64(felhasználónév+":"+jelszó). Tcl/Tk-ben a következő kód használható 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 a tartalomtípus és az Authorization fejléc is szerepel.

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éc részt és egy HTTP törzs részt. A HTTP törzs egy JSON kódolású adatsor. Tartalmazza a címzettek számát és az üzenetek szövegét.

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

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

Amint az SMS gateway megkapja ezt a kérést, generál egy HTTP választ. A HTTP válasz tartalmaz egy státuszkó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 visszaküld, 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 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"
      }
    ]
  }
}
	

Hogyan küldjünk SMS-t Tcl/Tk-ből a Tcl/Tk SMS API-val (Videó útmutató)

Ez a videó bemutatja, hogyan töltheted le a SendMultipleSms.tcl.zip fájlt erről az oldalról, és hogyan nyithatod meg tartalmát egy szövegszerkesztőben. Ha megnézed a videót, észreveszed, hogy a SendMultipleSms.tcl zip tartalma az Asztalra kerül. Azt is látni fogod, hogy duplán kattintunk a SendMultipleSms.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: SendMultipleSms.tcl

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

hogyan küldjünk több sms-t tcl használatával
3. ábra - SendMultipleSms.tcl

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

Az SMS beküldése után érdemes ellenőrizni az SMS gateway-t, hogy mit kapott meg. 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 küldj több SMS-t a fenti Tcl/Tk kóddal (Videó útmutató)

More information