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.
More information