SMS válaszok egy SQL adatbázisból
Az Ozeki SMS Gateway Autoreply Database User felhasználója kapcsolódhat a Microsoft SQL, Oracle, MySQL, Sybase stb. adatbázisaihoz egy kapcsolati sztring segítségével. Bármely megadott SELECT lekérdezést futtat, miután fogadott egy SMS üzenetet. A lekérdezés eredményhalmazát kimenő üzenetként küldi el. A lekérdezések és táblák módosíthatók a saját alkalmazásodból is.
Hogyan küldjünk SMS választ SQL-ből
SQL-ből SMS válasz küldéséhez:
- Indítsd el az Ozeki SMS Gateway-t
- Adj hozzá egy új Autoreply adatbázis felhasználót
- Hozz létre SQL adatbázis tábla szerkezetet
- Állítsd be az Autoreply adatbázis felhasználót
- Add meg az automatikus válasz szöveg szkriptet
- Használj azonosítható számokat és kulcsszavakat
- Küldj teszt SMS-t, hogy választ kapj SQL-ből
- Ellenőrizd az Autoreply adatbázis felhasználó naplóit
A következő szolgáltatást hozhatod létre ezzel a megoldással (1. ábra):
1.) Az Ozeki SMS Gateway fogad egy SMS üzenetet egy mobiltelefonról.
2.) Az Ozeki SMS Gateway Autoreply Database User felhasználója kulcsszavakat keres az SMS üzenetben egy txt fájl segítségével.
3.) A kereséstől függően egy automatikus válaszüzenet kerül kiválasztásra az adatbázis szerveredről ugyanazzal a txt fájllal.
Fontos, hogy legyen egy IP SMS szolgáltató vagy egy GSM modem konfigurálva az Ozeki SMS Gateway-en, hogy fogadhass SMS üzeneteket és automatikusan válaszolhass rájuk ezzel a példával.
1. lépés - Autoreply Database User beállítása az Ozeki SMS Gateway-ben
Először telepítened kell egy Autoreply Database User felhasználót a leírt szolgáltatás létrehozásához. A 'Management' konzolon kattints az 'Add' gombra, ahogyan a 2. ábrán látható.
Találd meg az Autoreply Database User-t és kattints a kék 'install' linkre mellette. Ahogyan a 3. ábrán látható.
2. lépés - Adatbázis tábla szerkezet létrehozása
Az Autoreply Database User felhasználó egy adatbázis táblából fogja kiválasztani a válasz SMS üzeneteket. Hozd létre a következő adatbázis szerkezetet az SMS üzenetek tárolásához (4. ábra). Ez a példa egy MySQL adatbázis szervert használ, de használhatsz más adatbázisokat is, mint például Microsoft SQL, Oracle, Sybase stb... Más táblákat és tábla elrendezéseket is használhatsz.
CREATE TABLE autoreplymessage ( id int(11) NOT NULL auto_increment, keyword varchar(30) default NULL, msg text default NULL, PRIMARY KEY (id) ); INSERT INTO autoreplymessage (keyword,msg) VALUES ("default","Nincs adat ehhez a kulcsszóhoz."), ("red","A piros jó szín."), ("blue","A kék nem a legjobb választás.");4. ábra - CREATE TABLE és INSERT sorok az 'autoreplymessage' táblába
A tábláid megtekinthetők SELECT * FROM utasításokkal (5. ábra). Bár ez a példa csak egy táblát tartalmaz.
> SELECT * FROM autoreplymessage;
id keyword msg ---------- ------------------------------ ------------------------------------- 1 default Nincs adat ehhez a kulcsszóhoz. 2 red A piros jó szín. 3 blue A kék nem a legjobb választás. (3 sor érintve)5. ábra - Olvasd az 'autoreplymessage' táblát egy SELECT utasítással
Abban az esetben, ha nincs adatbázis illesztőprogram telepítve az adatbázis szerverrel, telepítened kell egy illesztőprogramot, mert a következő lépésben szükséged lesz a kapcsolati sztringre. Az adatbázis illesztőprogram kapcsolja össze az Ozeki SMS Gateway-t és az adatbázis szervert. A legtöbb esetben az adatbázis szerverrel együtt települ egy adatbázis illesztőprogram.
3. lépés – Az automatikus válaszadatbázis felhasználó konfigurálása az adatbázis használatára
Az automatikus válaszadatbázis felhasználó 'Adatbázis beállítás' paneljén (6. ábra) meg kell adnia az adatbázis kapcsolat típusát és a kapcsolati karakterláncot. A típust a legördülő menüből választhatja ki, míg a karakterláncot a szövegmezőbe kell beírnia.
A 7. ábrán egy példa karakterláncot láthat MySQL adatbázis kapcsolathoz.
Ne feledje, hogy saját kapcsolati karakterlánc típust használhat (OleDB, ODBC, SQLServer, Oracle) saját adatbázis szerveréhez,
ami lehet Microsoft SQL, Oracle, Sybase stb... Ha ODBC illesztőt használ MySQL-hez,
csak módosítania kell a MySQL szerver IP címét, adatbázis nevét, felhasználónevet és jelszót a saját értékeire a következő karakterláncban:
Kapcsolat típusa: ODBC
Kapcsolati karakterlánc: Driver={MySQL ODBC 5.3 Unicode Driver}; Server=127.0.0.1;Database=ozekisms;User=ozeki;Password=abc123;Option=4;
Más adatbázis szerverek kapcsolati karakterláncának megtalálásához, javasoljuk, hogy olvassa el az SMS adatbázis kapcsolati karakterláncok útmutatóját.
4. lépés – Szkript írása automatikus válaszadáshoz SQL adatbázisból
Most itt az idő, hogy megírja a szkriptfájlt, amely képes egy sort KIVÁLASZTANI az adatbázis táblából, ha a tábla sikeresen létrejött a 2. lépésben. A kiválasztott sor üzenet attribútuma válaszként kerül elküldésre az SMS üzenetre. Itt találja a példa szkript elérési útját: C:\Program Files\Ozeki\Ozeki10\Data\NG\config\OzekiUsername\sqlscript.txt
Ezeket a fájlokat egy egyszerű szövegszerkesztővel szerkesztheti, vagy létrehozhat saját txt fájlt és saját alkalmazásával szerkesztheti, ami hasznos, ha módosítani szeretné a lekérdezéseket. Kérjük, adja meg a fájl elérési útját az Automatikus válaszadatbázis felhasználóban a 'Database setup' gombra kattintva és az 'Autoreply script' lap kiválasztásával (8. ábra)
5. lépés – Az SQL lekérdezés szkriptek szerkezete
Az Automatikus válaszadatbázis felhasználó SQL szkriptje szűrő-utasítás párokat tartalmaz, amelyek pontosan úgy működnek, mint az if-then szerkezet a programozási nyelvekben. A kapott SMS üzenet átmegy a szűrőn, és ha az megfelelő, egy SQL SELECT utasítás fut le. A kiválasztott sorok üzenet tartalma továbbítódik egy telefonszámra. Ez a szám a SELECT utasítás eredményhalmazának első paramétere, míg az üzenet szövege a második. A szűrő képes telefonszámokat, szövegrészeket és kulcsszavakat azonosítani. Az egyes üzenetek kulcsszava a szöveg első szava. A továbbítás akkor történik meg, ha a címzett címe szerepel az adatbázisban (11. ábra).
6. lépés – Egy egyszerű kulcsszó példa
Ez a példa a következő táblán fog futni, amelyet a 9. ábrán láthat.
id keyword msg ---------- ------------------------------ ------------------------------------- 1 default Nincs adat ehhez a kulcsszóhoz. 2 red A piros jó szín. 3 blue A kék nem a legjobb választás.9. ábra – Az 'autoreplymessage' tábla tartalma
A következő szkriptet futtathatja a 10. ábrán látható módon az 'autoreplymessage' táblán a 'sqlscript.txt' fájlhoz hozzáadva. Emlékeztetőül, a kulcsszó, amelyet a 'k' karakter szimbolizál, az SMS üzenet első szava. Ezt a szót teszteli a szűrő. Ha egy szűrőellenőrzés sikeres, a SELECT utasítás lefut, és a szkript leáll. Amint láthatja, állandó értékeket is elhelyezhet a SELECT utasításban. Például a '$sender', amely a bejövő üzenet küldője.
Szkript elemek, amelyeket elhelyezhet a sqlscript.txt fájlbanSELECT '$sender',msg FROM autoreplymessage WHERE keyword='red' #Az első szűrő ellenőrzi, hogy a 'RED' szó volt-e a kulcsszó. #Ha igaz, akkor a 'Red is a good colour.' szöveget válaszként küldi. #Ha hamis, akkor a következő szűrőhöz lép. k^BLUE SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue' #A második szűrő ellenőrzi, hogy a 'BLUE' szó volt-e a kulcsszó. #Ha igaz, akkor a 'Blue is not the best option.' szöveget válaszként küldi. #Ha hamis, akkor a következő szűrőhöz lép. k.* SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default' #A harmadik szűrő bármilyen más kulcsszót elfogad. #A 'There is no data for this keyword.' szöveget válaszként küldi.10. ábra – Példa szkript, amely elhelyezhető a sqlscript.txt fájlban
Az SQL lekérdezés szkript szűrő része hasonlóan működik, mint az SMS válasz szkript szűrő része, de ne feledje, hogy csak szűrő példákat keressen, mivel a második rész mindig egy SQL SELECT utasítás.
7. lépés – Előre definiált kulcsszavak az Ozeki SMS Gatewayben
Az ilyen típusú kulcsszavak elhelyezhetők a szkriptben. Például a '$sender':
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red'11. ábra - Az üzenetet elküldi a '$sender' címzettnek
Az Autoreply adatbázis felhasználó a következő kulcsszavakat ismeri fel:
Kulcsszó | Érték | $originator | Felülírásra kerül a küldő telefonszámával. |
---|---|
$sender | =$originator (A $sender a $originator másik neve.) |
$recipient | Felülírásra kerül az üzenet fogadójának telefonszámával. |
$receiver | =$recipient (A $receiver a $recipient másik neve.) |
$messagedata | Felülírásra kerül az üzenet szövegével. |
$keyword | Felülírásra kerül az üzenet első szavával. Ezt a szót kulcsszónak nevezik. |
$after | Felülírásra kerül a kulcsszó utáni maradék szöveggel. |
$senttime | Felülírásra kerül egy időbélyeggel, amely megmutatja, mikor került elküldésre az üzenet. |
$receivedtime | Felülírásra kerül egy időbélyeggel, amely megmutatja, mikor érkezett meg az üzenet. |
$messagetype | Felülírásra kerül az üzenet típusával, ami legtöbbször 'SMS:TEXT'. |
$id | Felülírásra kerül egy egyedi karakterlánccal, ami azonosítja az üzenetet az Ozeki SMS Gatewayben. |
$operator | Felülírásra kerül a szolgáltató nevével, ami fogadta az üzenetet az Ozeki SMS Gatewayben. |
$1 | Felülírásra kerül az üzenet első szavával. |
$2 | Felülírásra kerül az üzenet második szavával. |
$3 | Felülírásra kerül az üzenet harmadik szavával, stb... |
Az automatikus válaszadó szkript szerkezetét ezeken a weboldalakon magyarázzuk:
8. lépés – Tesztelje az adatbázisból történő automatikus válaszadó megoldást
Az 1-6. lépések elvégzése után kipróbálhatja a megoldást. Az Ozeki SMS Gateway továbbítja a bejövő SMS üzeneteket az Ön Automatikus Válaszadó Adatbázis Felhasználójához. Az SQL lekérdezés szkript szűri az SMS üzeneteket, hogy megfelelő SELECT eredményhalmazokat hozzon létre. Az eredményhalmaz minden sora egy válaszul küldendő vagy továbbítandó üzenetet reprezentál.
Az Automatikus Válaszadó Adatbázis Felhasználó üzenetnaplóját a következő útvonalon követheti nyomon:
C:\Program Files\Ozeki\Ozeki10\Data\NG\Logs
Amikor adatot szúrok be az Ozekimessageout táblába, nem kapom meg az üzenetet a mobiltelefonomra. Mi lehet az oka annak, hogy nem kapom meg a szöveges üzenetet, amelyet az SQL konzolommal szúrtam be az out táblába?
Először is, zárjuk ki a mobilhálózati problémát. Küldjön egy teszt SMS-t közvetlenül az Ozeki grafikus felületéről (GUI). Ha az üzenet sikeresen megérkezik, a hálózati kapcsolat működőképesnek tűnik.
Ezután ellenőriznünk kell, hogy az üzenetek átkerülnek-e az adatbázisból az Ozeki szoftverbe. Szúrjon be néhány teszt üzenetet az Ozekimessageout táblába. Ezután az Ozeki GUI-jában navigáljon az Ön által használt adatbázis felhasználó kimenő postaládájához. Ha ezek a teszt üzenetek hiányoznak a kimenő postaládából, a probléma az adatbázis és az Ozeki közötti adatátviteli folyamatban rejlik.
Szeretnék egy adatbázist használni több "adatbázis felhasználó" számára. Ez lehetséges?
Természetesen! Az Ozeki SMS Gateway lehetővé teszi különálló üzenetnaplók fenntartását különböző célokra külön adatbázis felhasználók használatával.
Íme egy lépésről lépésre útmutató:
- Új adatbázis táblák létrehozása: Hozzon létre két új táblát az adatbázisában. Könnyű azonosíthatóság érdekében elnevezheti őket ozekimessagein2 és ozekimessageout2 néven. Ezeknek a tábláknak ugyanazt a szerkezetet kell követniük, mint a meglévő ozekimessagein és ozekimessageout tábláknak, amelyeket az első adatbázis felhasználó használ.
- A második adatbázis felhasználó konfigurálása: Nyissa meg a második adatbázis felhasználó konfigurációs űrlapját az Ozekiben.
- SQL sablonok módosítása: Keresse meg az SQL sablonok részét a konfigurációs űrlapon. Ezek a sablonok határozzák meg, hogyan kerülnek mentésre az üzenetek az adatbázis táblákba.
- Táblanevek frissítése: A második adatbázis felhasználó SQL sablonjaiban frissítse a meglévő táblaneveket (ozekimessagein és ozekimessageout) úgy, hogy egyezzenek az újonnan létrehozott táblákkal (ozekimessagein2 és ozekimessageout2).
Az Ozeki SMS Gateway mindig lecsatlakozik a MySQL szerveremről a következő hibaüzenettel: MySQL Server has gone away. Mit tegyek?
Az Ozeki és a MySQL együttes használatakor a válaszkészség javítása érdekében állítsa be az időtúllépési beállítást. Íme, hogyan:
MySQL időtúllépés konfigurálása:
- Módosítsa a MySQL konfigurációs fájlját (pl. my.ini), és állítsa be az interactive_timeout paramétert a kívánt időtartamra másodpercben (pl. interactive_timeout = 28800 8 órára).
- Mentse a változtatásokat, és indítsa újra a MySQL szolgáltatást.
Ozeki kapcsolati karakterlánc frissítése:
-
Módosítsa az Ozeki kapcsolati karakterláncát úgy, hogy Interactive-t használjon wait_timeout helyett. A helyes formátum: Driver={MySQL ODBC 5.2 ANSI Driver};Server=127.0.0.1;Database=ozeki;User=test;Password=test;Interactive=IDŐTÚLLÉPÉSI_ÉRTÉK.
- Ne felejtse el lecserélni az IDŐTÚLLÉPÉSI_ÉRTÉK-t a kívánt időtúllépési értékre másodpercben.
Driver={MySQL ODBC 5.2 ANSI Driver};Server=127.0.0.1;Database=ozeki;User=test;Password=test;interactive=;Option=8;
More information
- SMS válasz számítógépről mobilra
- SMS válasz szkript írása
- SMS válasz küldése SQL-ből