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.
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.tclsource 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ó.
Hogyan küldjünk SMS-t Tcl/Tk-ből (Egyszerű útmutató)
SMS küldése Tcl/Tk-ből:
- Telepíts egy HTTP API felhasználót
- Kapcsold be a "Log communication events" opciót az Advanced lapon
- Töltsd le és telepítsd a Tcllib könyvtárat
- Töltsd le, majd csomagold ki a SendMultipleSms.tcl.zip fájlt
- Nyisd meg a SendMultipleSms.tcl fájlt egy szövegszerkesztőben
- Indítsd el az Ozeki SMS Gateway alkalmazást
- Futtasd a SendMultipleSms.tcl Tcl/Tk kódot a terminálban
- 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.
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 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.