Struktura SQL upitskog skripta
Pomerite se nadole da vidite strukturu SQL upitskog skripta. Možete generisati skript fajl za svakog korisnika Autoreply baze podataka, koji može slati SMS poruke ako prate skript. Fajl radi sa svakom dolaznom porukom i bira odlazne poruke prema filteru.
UvodPogledajte skript fajl. Možete videti da je podeljen u sekcije odvojene praznim linijama (Slika 1). Možete napisati koliko god sekcija želite bez maksimalnog ograničenja. Sekcije se čitaju redom i prva sekcija koja odgovara dolaznoj SMS poruci će biti korišćena za kreiranje odgovora.
Prva linija svake sekcije je uslov filtera, a sledeća jedna ili više SQL naredbi se nazivaju akcija. SQL SELECT naredbe mogu vratiti jednu ili više odgovarajućih poruka. Ako uslov filtera odgovara podacima dolazne poruke, poziva se izvršavanje naredbi dok se ne nađe prazna linija. U tom slučaju neće proveravati druge sekcije.
Svaka sekcija počinje sa uslovom koji se sastoji od jedne linije podeljene u dva dela (Slika 2)
Prvi deo je selektor cilja za uparivanje, jedan karakter koji određuje koji deo dolazne poruke treba filtrirati (Slika 3). FONT style="font-size:15px;">Možete izabrati karakter selektora cilja za uparivanje iz sledećih opcija:
# Opcije uslova: # n - ako broj telefona pošiljaoca odgovara šablonu # m - ako tekst poruke odgovara šablonu # k - ako ključna reč odgovara šablonu. (Ključna reč je prva reč # poruke. Ključna reč se konvertuje u velika slova)Slika 3 - Selektor cilja za uparivanje
Drugi deo je šablon za uparivanje koji je filter karaktera (Slika 4). Ovi primeri šablona za uparivanje rade na 'm' cilju poruke:
m.* - odgovara bilo kom tekstualnom poruci m^abc.* - odgovara ako tekstualna poruka počinje sa 'abc' ili 'ABC' m.*abc.* - odgovara ako tekstualna poruka sadrži 'abc' ili 'ABC'Slika 4 - Primeri šablona za uparivanje
Ovde možete pronaći tutorijal o regularnim izrazima za dostupne šablone za uparivanje.
AkcijaSvaki uslov filtera je praćen akcijom koja se sastoji od SQL naredbi.
Možete samo slati SMS poruke sa SQL SELECT upitima, ali možete pokrenuti i INSERT i UPDATE naredbe. Imajte na umu da je 1. parametar rezultata SELECT upita primalac poruke koja će biti poslata, dok je 2. parametar sama poruka. Na Slici 5 možete videti nekoliko primera.
k^CRVENO INSERT INTO log (sender,message) VALUES ('$sender','$messagedata') SELECT '$sender',msg FROM autoreplymessage WHERE keyword='crveno' k^PLAVO SELECT '$sender',msg FROM autoreplymessage WHERE keyword='plavo' k.* SELECT '$sender',msg FROM autoreplymessage WHERE keyword='podrazumevano'Slika 5 - Primeri SQL naredbi gde je primalac '$sender'
Sledeće reči su zamenjene u SQL naredbama:
Reči | Vrednost | $originator | Broj telefona sa kojeg je poruka poslata. |
---|---|
$sender | =$originator ($sender je drugo ime za $originator.) |
$recipient | Broj telefona na koji je poruka poslata. |
$receiver | =$recipient ($receiver je drugo ime za $recipient.) |
$messagedata | Tekst poruke. |
$keyword | Prva reč u poruci. Ova reč se naziva ključna reč. |
$after | Preostali tekst nakon ključne reči. |
$senttime | Vremenska oznaka koja pokazuje kada je poruka poslata. |
$receivedtime | Vremenska oznaka koja pokazuje kada je poruka primljena. |
$messagetype | Tip poruke, koji je u većini slučajeva 'SMS:TEXT'. |
$id | Jedinstveni string. Identifikuje svaku poruku u Ozeki SMS Gateway-u. |
$operator | Ime provajdera usluga. Prima poruku u Ozeki SMS Gateway-u. |
$1 | Prva reč u poruci. |
$2 | Druga reč u poruci. |
$3 | Treća reč u poruci, itd... |
Svaka SQL naredba se izvršava liniju po liniju dok interpreter ne dođe do prazne linije, gde se konačno zaustavlja.
(Savet: Možete dobiti samo sadržaj odgovora korišćenjem SELECT naredbi.)
Odgovor
Rezultujući skup SELECT SQL naredbe sadrži poruke koje treba proslediti ili odgovoriti. Broj redova koje možete pronaći u rezultujućem skupu će odrediti broj poruka koje treba poslati. (Slika 6)
Rezultujući skup može sadržati sledeće parametre:recipient - Prva kolona rezultujućeg skupa (Obavezno) messageData - Druga kolona rezultujućeg skupa (Obavezno) messageType - Treća kolona rezultujućeg skupa (Opciono) sender - Četvrta kolona rezultujućeg skupa (Opciono) operatorNames - Peta kolona rezultujućeg skupa (Opciono)
Slika 6 - Ozeki 10 SMS Gateway's Autoreply Database User će poslati SMS poruke iz rezultata.
PrimerPogledajte primer kako da filtrirate prvu reč u svakoj dolaznoj poruci i kako da izvršite odvojene akcije za svaku. Akcija zavisi od toga da li je reč 'CRVENO', 'PLAVO' ili nešto drugo. Velika i mala slova se tretiraju jednako. (Slika 7)
k^CRVENO INSERT INTO log (sender,message) VALUES ('$sender','$messagedata') SELECT '$sender',msg FROM autoreplymessage WHERE keyword='crveno' #Prvi filter proverava da li je reč 'CRVENO' bila ključna reč. #Ako je tačno, INSERT-uje poruku u 'log' tabelu #i SELECT-uje 'Crveno je dobra boja.' kao odgovor. #Ako nije tačno, prelazi na sledeći filter. k^PLAVO SELECT '$sender',msg FROM autoreplymessage WHERE keyword='plavo' #Drugi filter proverava da li je reč 'PLAVO' bila ključna reč. #Ako je tačno, SELECT-uje 'Plavo nije najbolja opcija.' kao odgovor. #Ako nije tačno, prelazi na sledeći filter. k.* SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default' #Treći filter će prihvatiti bilo koju drugu ključnu reč. #SELECT-uje 'Nema podataka za ovu ključnu reč.' kao odgovor.Slika 7 - Primer SQL upita
Pogledajte SQL tabele prikazane na Slici 8 i 9 da biste ispitali sledeći primer:
id keyword msg ---------- ------------------------------ ------------------------------------- 1 default Nema podataka za ovu ključnu reč. 2 crveno Crveno je dobra boja. 3 plavo Plavo nije najbolja opcija.Slika 8 - 'autoreplymessage' tabela
id sender message ---------- ------------------------------ ------------------------------------- 1 +3620123456 crveno Zdravo Autoreply Database User 2 +3670654321 crveno Dobar dan primaocuSlika 9 - 'log' tabela za dolazne poruke
More information
- Vodič za instalaciju
- Kreiraj izgled baze podataka
- Primer skript fajla
- Struktura skripte