La structure du script de requête SQL

Faites défiler vers le bas pour voir la structure du script de requête SQL. Vous pouvez attribuer un fichier de script à chaque utilisateur de la base de données Autoreply, capable d'envoyer des messages SMS s'ils suivent le script. Le fichier fonctionne avec chaque message entrant et sélectionne les messages sortants selon le filtre.

Introduction

Regardez le fichier de script. Vous pouvez voir que il est divisé en sections séparées par des lignes vides (Figure 1). Vous pouvez écrire autant de sections que vous le souhaitez sans limite maximale. Les sections sont lues séquentiellement et la première section qui correspond au SMS entrant sera utilisée pour créer le message SMS de réponse.

La première ligne de chaque section est la condition de filtrage, et les une ou plusieurs instructions SQL suivantes sont appelées action. Les instructions SQL SELECT peuvent renvoyer un ou plusieurs messages de réponse. Si la condition de filtrage correspond aux données du message entrant, elle appelle les instructions à exécuter jusqu'à ce qu'une ligne vide soit trouvée. Dans ce cas, elle ne vérifiera pas les autres sections.

vous pouvez voir les conditions filtrées et les instructions SQL dans cet exemple
Figure 1 - Vous pouvez voir les conditions filtrées et les instructions SQL dans cet exemple

Condition

Chaque section commence par une condition composée d'une seule ligne divisée en deux parties (Figure 2)

la première ligne de chaque section est appelée : condition
Figure 2 - La première ligne de chaque section est appelée : condition

La première partie est le sélecteur de cible de correspondance, un seul caractère qui détermine quelle partie du message entrant doit être filtrée (Figure 3). FONT style="font-size:15px;">Vous pouvez sélectionner un caractère de sélecteur de cible de correspondance parmi les options suivantes :

# Options de condition :
#     n - si le numéro de téléphone de l'expéditeur correspond au modèle
#     m - si le texte du message correspond au modèle
#     k - si le mot-clé correspond au modèle. (Le mot-clé est le premier mot
#         des messages. Le mot-clé est converti en majuscules)
Figure 3 - Sélecteurs de cible de correspondance

La deuxième partie est le modèle de correspondance qui est le filtre de caractères (Figure 4).

Ces exemples de modèles de correspondance fonctionnent sur la cible de message 'm' :
m.* - correspond à n'importe quel message texte
m^abc.* - correspond si le message texte commence par 'abc' ou 'ABC'
m.*abc.* - correspond si le message texte contient 'abc' ou 'ABC'
Figure 4 - Exemples de modèles de correspondance

Vous pouvez trouver ici un tutoriel sur les expressions régulières pour les modèles de correspondance disponibles.

Action

Chaque filtre de condition est suivi d'une action qui consiste en des instructions SQL.

Vous ne pouvez envoyer des messages SMS qu'avec des requêtes SQL SELECT, mais vous pouvez également exécuter des instructions INSERT et UPDATE. Gardez à l'esprit que le 1er paramètre du jeu de résultats SELECT est le destinataire du message à envoyer, tandis que le 2ème paramètre est le message lui-même. Sur la Figure 5, vous pouvez voir quelques exemples.


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'
Figure 5 - Exemples d'instructions SQL où le destinataire est '$sender'

Les mots suivants sont remplacés dans les instructions SQL :
MotsValeur
$originatorLe numéro de téléphone à partir duquel le message a été envoyé.
$sender=$originator (Le $sender est un autre nom pour le $originator.)
$recipientLe numéro de téléphone auquel le message a été envoyé.
$receiver=$recipient (Le $receiver est un autre nom pour le $recipient.)
$messagedataLe texte du message.
$keywordLe 1er mot du message. Ce mot est appelé mot-clé.
$afterLe texte restant après le mot-clé.
$senttimeUn horodatage qui indique quand le message a été envoyé.
$receivedtimeUn horodatage qui indique quand le message a été reçu.
$messagetypeLe type du message, qui est 'SMS:TEXT' dans la plupart des cas.
$idUne chaîne unique. Elle identifie chaque message dans Ozeki SMS Gateway.
$operatorNom du fournisseur de services. Il reçoit le message dans Ozeki SMS Gateway.
$1Le 1er mot du message.
$2Le 2ème mot du message.
$3Le 3ème mot du message, etc...

Chaque instruction SQL est exécutée ligne par ligne jusqu'à ce que l'interpréteur atteigne une ligne vide, où il s'arrête finalement.

(Astuce : Vous ne pouvez obtenir le contenu du message de réponse qu'en utilisant des instructions SELECT.)

Réponse

Le résultat de l'instruction SQL SELECT contient les messages à transférer ou à répondre. Le nombre de lignes que vous trouverez dans le résultat déterminera le nombre de messages à envoyer. (Figure 6)

Le résultat peut contenir les paramètres suivants :
recipient - La 1ère colonne du résultat (Obligatoire)
messageData - La 2ème colonne du résultat (Obligatoire)
messageType - La 3ème colonne du résultat (Optionnel)
sender - La 4ème colonne du résultat (Optionnel)
operatorNames - La 5ème colonne du résultat (Optionnel)

Figure 6 - L'utilisateur de la base de données Autoreply d'Ozeki 10 SMS Gateway enverra des SMS à partir des résultats.

Exemple

Regardez un exemple de filtrage du premier mot de chaque message entrant et comment effectuer des actions distinctes pour chacun. L'action dépend si le mot est 'ROUGE', 'BLEU' ou autre. Les majuscules et minuscules sont considérées de la même manière. (Figure 7)

k^ROUGE
INSERT INTO log (sender,message) VALUES ('$sender','$messagedata')
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='rouge'
#Le premier filtre vérifie si le mot 'ROUGE' était le mot-clé.
#Si vrai, il INSERT le message dans la table 'log'
#et SELECT 'Le rouge est une bonne couleur.' comme message de réponse.
#Si faux, il passe au filtre suivant.

k^BLEU
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='bleu'
#Le deuxième filtre vérifie si le mot 'BLEU' était le mot-clé.
#Si vrai, il SELECT 'Le bleu n'est pas la meilleure option.' comme message de réponse.
#Si faux, il passe au filtre suivant.

k.*
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default'
#Le troisième filtre acceptera tout autre mot-clé.
#Il SELECT 'Il n'y a pas de données pour ce mot-clé.' comme message de réponse.
Figure 7 - Exemple de script de requête SQL

Consultez les tables SQL des Figures 8 et 9 pour examiner l'exemple suivant :

id          keyword                        msg
----------  ------------------------------ -------------------------------------
 1          default                        Il n'y a pas de données pour ce mot-clé.
 2          rouge                          Le rouge est une bonne couleur.
 3          bleu                           Le bleu n'est pas la meilleure option.
 
Figure 8 - Table 'autoreplymessage'

id          sender                         message
----------  ------------------------------ -------------------------------------
 1          +3620123456                    rouge Bonjour Utilisateur de la base de données Autoreply
 2          +3670654321                    rouge Bonne journée à vous Destinataire
Figure 9 - Table 'log' pour les messages entrants

More information