Structura scriptului de interogare SQL
Derulați în jos pentru a vedea structura scriptului de interogare SQL. Puteți furniza un fișier script fiecărui Utilizator al Bazei de Date Autoreply, care este capabil să trimită mesaje SMS dacă urmează scriptul. Fișierul funcționează cu fiecare mesaj primit și selectează mesajele de răspuns în funcție de filtru.
IntroducereUită-te la fișierul script. Poți vedea că este împărțit în secțiuni separate prin linii goale (Figura 1). Poți scrie câte secțiuni dorești, fără limită maximă. Secțiunile sunt citite secvențial și prima secțiune care se potrivește cu SMS-ul primit va fi utilizată pentru a crea mesajul de răspuns.
Prima linie a fiecărei secțiuni este condiția de filtrare, iar următoarele una sau mai multe instrucțiuni SQL se numesc acțiune. Instrucțiunile SQL SELECT pot returna unul sau mai multe mesaje de răspuns. Dacă condiția de filtrare se potrivește cu datele mesajului primit, aceasta apelează instrucțiunile care urmează să fie executate până când se găsește o linie goală. În acest caz, nu vor fi verificate alte secțiuni.
Fiecare secțiune începe cu o condiție formată dintr-un singur rând împărțit în două părți (Figura 2)
Prima parte este selectorul țintă de potrivire, un singur caracter care determină ce parte a mesajului primit ar trebui filtrată (Figura 3). FONT style="font-size:15px;">Puteți selecta un caracter selector țintă de potrivire din următoarele opțiuni:
# Opțiuni de condiție: # n - dacă numărul de telefon al expeditorului se potrivește cu modelul # m - dacă textul mesajului se potrivește cu modelul # k - dacă cuvântul cheie se potrivește cu modelul. (Cuvântul cheie este primul cuvânt # din mesaje. Cuvântul cheie este convertit în majuscule)Figura 3 - Selectori țintă de potrivire
A doua parte este modelul de potrivire, care este filtrul de caractere (Figura 4). Aceste exemple de model de potrivire funcționează pe ținta mesajului 'm':
m.* - se potrivește cu orice mesaj text m^abc.* - se potrivește dacă mesajul text începe cu 'abc' sau 'ABC' m.*abc.* - se potrivește dacă mesajul text conține 'abc' sau 'ABC'Figura 4 - Exemple de model de potrivire
Aici puteți găsi un tutorial despre expresii regulate pentru modelele de potrivire disponibile.
AcțiuneFiecare filtru de condiție este urmat de o acțiune care constă din instrucțiuni SQL.
Puteți trimite mesaje SMS doar cu interogări SQL SELECT, dar puteți rula și instrucțiuni INSERT și UPDATE. Rețineți că primul parametru al setului de rezultate SELECT este destinatarul mesajului care urmează să fie trimis, în timp ce al doilea parametru este mesajul în sine. În Figura 5 puteți vedea câteva exemple.
k^RED INSERT INTO log (sender,message) VALUES ('$sender','$messagedata') SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red' k^BLUE SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue' k.* SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default'Figura 5 - Exemple de instrucțiuni SQL unde destinatarul este '$sender'
Următoarele cuvinte sunt înlocuite în instrucțiunile SQL:
Cuvinte | Valoare | $originator | Numărul de telefon de la care a fost trimis mesajul. |
---|---|
$sender | =$originator ($sender este un alt nume pentru $originator.) |
$recipient | Numărul de telefon către care a fost trimis mesajul. |
$receiver | =$recipient ($receiver este un alt nume pentru $recipient.) |
$messagedata | Textul mesajului. |
$keyword | Primul cuvânt din mesaj. Acest cuvânt se numește cuvânt cheie. |
$after | Textul rămas după cuvântul cheie. |
$senttime | Un marcaj de timp care arată când a fost trimis mesajul. |
$receivedtime | Un marcaj de timp care arată când a fost primit mesajul. |
$messagetype | Tipul mesajului, care este în majoritatea cazurilor 'SMS:TEXT'. |
$id | Un șir unic. Identifică fiecare mesaj în Ozeki SMS Gateway. |
$operator | Numele furnizorului de servicii. Primește mesajul în Ozeki SMS Gateway. |
$1 | Primul cuvânt din mesaj. |
$2 | Al doilea cuvânt din mesaj. |
$3 | Al treilea cuvânt din mesaj, etc... |
Fiecare instrucțiune SQL este executată linie cu linie până când interpretul ajunge la o linie goală, unde se oprește în final.
(Sfat: Puteți obține conținutul mesajului de răspuns doar folosind instrucțiuni SELECT.)
Răspuns
Setul de rezultate al instrucțiunii SQL SELECT conține mesajele care trebuie transmise sau răspunse. Numărul de rânduri pe care le găsiți în setul de rezultate va determina numărul de mesaje care vor fi trimise. (Figura 6)
Setul de rezultate poate conține următorii parametri:recipient - Prima coloană a setului de rezultate (Obligatoriu) messageData - A doua coloană a setului de rezultate (Obligatoriu) messageType - A treia coloană a setului de rezultate (Opțional) sender - A patra coloană a setului de rezultate (Opțional) operatorNames - A cincea coloană a setului de rezultate (Opțional)
Figura 6 - Utilizatorul Autoreply Database al Ozeki 10 SMS Gateway va trimite mesaje SMS din rezultate.
ExempluUitați-vă la un exemplu despre cum să filtrați primul cuvânt din fiecare mesaj primit și cum să efectuați acțiuni separate pentru fiecare. Acțiunea depinde dacă cuvântul este 'RED', 'BLUE' sau altceva. Caracterele majuscule și minuscule sunt luate în considerare în mod egal. (Figura 7)
k^RED INSERT INTO log (sender,message) VALUES ('$sender','$messagedata') SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red' #Primul filtru verifică dacă cuvântul 'RED' a fost cuvântul cheie. #Dacă este adevărat, INSEREAZĂ mesajul în tabela 'log' #și SELECTEAZĂ 'Red is a good colour.' ca mesaj de răspuns. #Dacă este fals, trece la următorul filtru. k^BLUE SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue' #Al doilea filtru verifică dacă cuvântul 'BLUE' a fost cuvântul cheie. #Dacă este adevărat, SELECTEAZĂ 'Blue is not the best option.' ca mesaj de răspuns. #Dacă este fals, trece la următorul filtru. k.* SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default' #Al treilea filtru va accepta orice alt cuvânt cheie. #SELECTEAZĂ 'There is no data for this keyword.' ca mesaj de răspuns.Figura 7 - Exemplu de script SQL query
Uitați-vă la tabelele SQL din Figura 8 și 9 pentru a examina următorul exemplu:
id keyword msg ---------- ------------------------------ ------------------------------------- 1 default There is no data for this keyword. 2 red Red is a good colour. 3 blue Blue is not the best option.Figura 8 - Tabela 'autoreplymessage'
id sender message ---------- ------------------------------ ------------------------------------- 1 +3620123456 red Hello Autoreply Database User 2 +3670654321 red Good day to you RecipientFigura 9 - Tabela 'log' pentru mesajele primite
More information
- Installation guide
- Create database layout
- Sample script file
- Script structure