A estrutura do script de consulta SQL

Role para baixo para ver a estrutura do script de consulta SQL. Você pode renderizar um arquivo de script para cada usuário do Banco de Dados Autoreply, que é capaz de enviar mensagens SMS se seguirem o script. O arquivo funciona com cada mensagem recebida e seleciona mensagens de saída de acordo com o filtro.

Introdução

Olhe para o arquivo de script. Você pode ver que ele está dividido em seções separadas por linhas vazias (Figura 1). Você pode escrever quantas seções quiser, sem limite máximo. As seções são lidas sequencialmente e a primeira seção que corresponder ao SMS recebido será usada para criar a mensagem SMS de resposta.

A primeira linha de cada seção é a condição filtrada, e as uma ou mais instruções SQL seguintes são chamadas de ação. As instruções SQL SELECT podem retornar uma ou mais mensagens de resposta. Se a condição do filtro corresponder aos dados da mensagem recebida, ele chama as instruções a serem executadas até que a linha vazia seja encontrada. Nesse caso, ele não verificará outras seções.

você pode ver as condições filtradas e as instruções SQL neste exemplo
Figura 1 - Você pode ver as condições filtradas e as instruções SQL neste exemplo
Condição

Cada seção começa com uma condição consistindo de uma única linha dividida em duas partes (Figura 2)

a primeira linha de cada seção é chamada: condição
Figura 2 - A primeira linha de cada seção é chamada: condição

A primeira parte é o seletor de alvo de correspondência, um único caractere que determina qual parte da mensagem recebida deve ser filtrada (Figura 3). FONT style="font-size:15px;">Você pode selecionar um caractere de seletor de alvo de correspondência das seguintes opções:

# Opções de condição:
#     n - se o número de telefone do remetente corresponder ao padrão
#     m - se o texto da mensagem corresponder ao padrão
#     k - se a palavra-chave corresponder ao padrão. (A palavra-chave é a primeira palavra
#         das mensagens. A palavra-chave é convertida para maiúsculas)
Figura 3 - Seletores de alvo de correspondência

A segunda parte é o padrão de correspondência que é o filtro de caracteres (Figura 4).

Estes exemplos de padrão de correspondência funcionam no alvo de mensagem 'm':
m.* - corresponde a qualquer mensagem de texto
m^abc.* - corresponde se a mensagem de texto começar com 'abc' ou 'ABC'
m.*abc.* - corresponde se a mensagem de texto contiver 'abc' ou 'ABC'
Figura 4 - Exemplos de padrão de correspondência

Aqui você pode encontrar um tutorial de expressões regulares para os padrões de correspondência disponíveis.

Ação

Cada filtro de condição é seguido por uma ação que consiste em instruções SQL.

Você só pode enviar mensagens SMS com consultas SQL SELECT, mas também pode executar instruções INSERT e UPDATE. Lembre-se de que o 1º parâmetro do conjunto de resultados SELECT é o destinatário da mensagem a ser enviada, enquanto o 2º parâmetro é a mensagem em si. Na Figura 5 você pode ver alguns exemplos.


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 - Exemplos de instruções SQL onde o destinatário é o '$sender'

As seguintes palavras são substituídas nas instruções SQL:
PalavrasValor
$originatorO número de telefone de onde a mensagem foi enviada.
$sender=$originator (O $sender é outro nome para o $originator.)
$recipientO número de telefone para o qual a mensagem foi enviada.
$receiver=$recipient (O $receiver é outro nome para o $recipient.)
$messagedataO texto da mensagem.
$keywordA 1ª palavra na mensagem. Essa palavra é chamada de palavra-chave.
$afterO texto restante após a palavra-chave.
$senttimeUm timestamp que mostra quando a mensagem foi enviada.
$receivedtimeUm timestamp que mostra quando a mensagem foi recebida.
$messagetypeO tipo da mensagem, que na maioria dos casos é 'SMS:TEXT'.
$idUma string única. Identifica cada mensagem no Ozeki SMS Gateway.
$operatorNome do provedor de serviços. Ele recebe a mensagem no Ozeki SMS Gateway.
$1A 1ª palavra na mensagem.
$2A 2ª palavra na mensagem.
$3A 3ª palavra na mensagem, etc...

Cada instrução SQL é executada linha por linha até que o interpretador atinja uma linha vazia, onde finalmente para.

(Dica: Você só pode obter o conteúdo da mensagem de resposta usando instruções SELECT.)

Resposta

O conjunto de resultados da instrução SQL SELECT contém as mensagens a serem encaminhadas ou respondidas. O número de linhas que você pode encontrar no conjunto de resultados determinará o número de mensagens a serem enviadas. (Figura 6)

O conjunto de resultados pode conter os seguintes parâmetros:
recipient - A 1ª coluna do conjunto de resultados (Obrigatório)
messageData - A 2ª coluna do conjunto de resultados (Obrigatório)
messageType - A 3ª coluna do conjunto de resultados (Opcional)
sender - A 4ª coluna do conjunto de resultados (Opcional)
operatorNames - A 5ª coluna do conjunto de resultados (Opcional)

Figura 6 - O usuário do banco de dados de resposta automática do Ozeki 10 SMS Gateway enviará mensagens SMS a partir dos resultados.

Exemplo

Veja um exemplo de como filtrar a 1ª palavra em cada mensagem recebida e como realizar ações separadas para cada uma. A ação depende se a palavra é 'RED', 'BLUE' ou outra. Caracteres maiúsculos e minúsculos são considerados igualmente. (Figura 7)

k^RED
INSERT INTO log (sender,message) VALUES ('$sender','$messagedata')
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red'
#O primeiro filtro verifica se a palavra 'RED' era a palavra-chave.
#Se verdadeiro, ele INSERE a mensagem na tabela 'log'
#e SELECIONA 'Red is a good colour.' como mensagem de resposta.
#Se falso, ele passa para o próximo filtro.

k^BLUE
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue'
#O segundo filtro verifica se a palavra 'BLUE' era a palavra-chave.
#Se verdadeiro, ele SELECIONA 'Blue is not the best option.' como mensagem de resposta.
#Se falso, ele passa para o próximo filtro.

k.*
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default'
#O terceiro filtro aceitará qualquer outra palavra-chave.
#Ele SELECIONA 'There is no data for this keyword.' como mensagem de resposta.
Figura 7 - Exemplo de script de consulta SQL

Veja as tabelas SQL encontradas nas Figuras 8 e 9 para examinar o seguinte exemplo:

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 Recipient
Figura 9 - Tabela 'log' para mensagem recebida

More information