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.
Condition
Chaque section commence par une condition composée d'une seule ligne divisée en deux parties (Figure 2)
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 :
Mots | Valeur | $originator | Le numéro de téléphone à partir duquel le message a été envoyé. |
---|---|
$sender | =$originator (Le $sender est un autre nom pour le $originator.) |
$recipient | Le numéro de téléphone auquel le message a été envoyé. |
$receiver | =$recipient (Le $receiver est un autre nom pour le $recipient.) |
$messagedata | Le texte du message. |
$keyword | Le 1er mot du message. Ce mot est appelé mot-clé. |
$after | Le texte restant après le mot-clé. |
$senttime | Un horodatage qui indique quand le message a été envoyé. |
$receivedtime | Un horodatage qui indique quand le message a été reçu. |
$messagetype | Le type du message, qui est 'SMS:TEXT' dans la plupart des cas. |
$id | Une chaîne unique. Elle identifie chaque message dans Ozeki SMS Gateway. |
$operator | Nom du fournisseur de services. Il reçoit le message dans Ozeki SMS Gateway. |
$1 | Le 1er mot du message. |
$2 | Le 2ème mot du message. |
$3 | Le 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éponseLe 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 DestinataireFigure 9 - Table 'log' pour les messages entrants
More information
- Guide d'installation
- Créer la structure de la base de données
- Exemple de fichier de script
- Structure du script