
Este serviço oferece o envio de mensagens SMS para as redes alemãs a partir de 1,6 cêntimos por mensagem; as mensagens SMS podem ser enviadas para todo o mundo a preços a partir de 4,9 cêntimos por mensagem, acrescidos de 19% de IVA em cada caso. Após o registo, estão disponíveis 30 mensagens SMS gratuitas, que podem ser enviadas para efeitos de teste. Este fornecedor não cobra qualquer taxa mensal de base. A seguir, aprenderá como pode enviar mensagens SMS automaticamente a partir da sua base de dados FileMaker.
Registo na smstrade
Para poder enviar mensagens SMS através do gateway SMS, deve primeiro registar-se no smstrade. O registo é gratuito e inclui o envio de até 30 mensagens SMS gratuitas para começar.
Dados mestre para o gateway SMS
Em primeiro lugar, são necessários três campos na sua base de dados FileMaker para conter o acesso e os dados mestre para o gateway SMS. Estes campos aplicam-se globalmente para uso em toda a sua solução FileMaker. Em alternativa, pode também utilizar variáveis globais em vez de campos, que são criados numa Script deve ser inicializado. Para o envio de mensagens SMS, são necessários os seguintes campos para os dados mestre:
- Remetente - Identificação do remetente do SMS, por exemplo, "0049123456789" ou "+49123456789
- Chave da porta de entrada - Chave da porta de entrada, que receberá depois de se registar em smstrade.de.
- Rota - A smstrade oferece três opções de tarifas:
- básico para o envio de mensagens SMS na Alemanha
- ouro para envio para todo o mundo com qualquer identificação de remetente
- direto para envio mundial diretamente através do operador de rede
Crie na sua base de dados três campos ou variáveis globais a que pode aceder em toda a sua solução. Depois de se registar na smstrade, introduza os dados principais nos campos correspondentes. Para o envio de mensagens SMS na Alemanha, recomendamos a opção tarifária "básica".
O guião para enviar SMS
Na próxima etapa, vamos programar um script com o qual pode enviar mensagens SMS para qualquer destinatário de toda a base de dados. O script pode ser chamado posteriormente com os cinco parâmetros de script seguintes:
- Recetor - Número de telefone do destinatário, por exemplo, "0049123456789" ou "+49123456789
- Texto - Texto da mensagem SMS (até 1.530 caracteres como SMS associado)
- Remetente - O ID do remetente é normalmente gerado a partir do campo de dados mestre.
- Chave da porta de entrada - Chave de porta de entrada, normalmente gerada a partir do campo de dados mestre.
- Rota - Route (tarifa), é normalmente gerado a partir do campo de dados mestre.
Se os campos "Sender", "Gateway Key" e "Route" forem criados a partir de campos de dados mestre, o script deve verificar primeiro se esses campos também foram actualizados. Por este motivo, o nosso script contém uma consulta correspondente no início. Abaixo encontrará o script completo para o envio de mensagens SMS com o apoio do plugin MBS FileMaker.
Passar parâmetros de script
Quando este script é chamado, cinco parâmetros do script são passados numa cadeia cujos valores são separados por um apóstrofo (|). Para separar a string, usamos um Função própria chamado "StringTrennen". Para poder utilizar o guião como mostrado, comece por criar o seguinte Função personalizada (função separada) na FileMaker Pro Advanced:
StringDisconnect (String; Número)
Se(número = 1;
CharacterLinks ( String; (Posição ( String; "|"; 1; 1))-1);
CharacterCentre ( String;
(Posição ( String; "|"; 1; Número-1))+1;
(Posição ( String; "|"; 1; Número)) - ((Posição ( String; "|"; 1; Número-1))+1)
)
)
Script para enviar SMS
Se tiver inserido a função personalizada acima mencionada ou se tiver outra função personalizada que possa extrair cadeias separadas por um carácter, crie um novo script no editor de scripts e nomeie-o como um subscrito de acordo com o seu esquema de nomeação pessoal (por exemplo, "ts.SMS_Versand").
Se [NÃO IstLeer(Sender) E NÃO IstLeer(Key) E NÃO IstLeer(Route)]
Parâmetros do script #S: Tel | Texto | De | Chave | Rota
Definir variável [$tel_nr; Value:StringTrennen(Get(ScriptParameter); 1)]
Definir variável [$text; Value:StringDisconnect(Get(ScriptParameter); 2)]
Definir variável [$from; Value:StringDisconnect(Get(ScriptParameter); 3)]
Definir variável [$key; Value:StringDisconnect(Get(ScriptParameter); 4)]
Definir variável [$route; Value:StringTrenn(Get(ScriptParameter); 5)]
#
# Inicializar transferência
Definir variável [$r; Value:MBS("Trace")]
Definir variável [$to; value:MBS("String.EncodeURLComponent"; $tel_nr; "utf8")]
Definir variável [$from; value:MBS("String.EncodeURLComponent"; $from; "utf8")]
Definir variável [$body; Value:Exchange(MBS("String.EncodeURLComponent"; $text; "utf8"); ""; "+")]
Definir variável [$curl; Value:MBS("CURL.New")]
Definir variável [$result; value:MBS("CURL.SetOptionpost"; $curl; 1)]
Definir variável [$result; Value:MBS("CURL.SetOptionVerbose"; $curl; 1)]
Definir variável [$result; Value:MBS("CURL.SetOptionURL"; $curl; "https://gateway.smstrade.de")]
#
# Definir dados XML e SMS de entrada
Definir variável [$content; valor: "key=" & $key & "&" & "to=" & $to & "&" & "message=" & $body & "&" &
"route=" & $route & "&" & "from=" & $from & "&" & "charset=utf-8"]
Definir variável [$content; Value:MBS( "String.ReplaceNewline"; $content; 2 )]
Definir variável [$result; Value:MBS("CURL.SetOptionPostFields"; $curl; $content)]
#
# Iniciar a transferência
Definir variável [$result; Value:MBS("CURL.Perform"; $curl)]
#
# Verificar resultado
Definir a variável [$$debugText; Value:MBS("String.ReplaceNewline"; MBS("CURL.GetDebugAsText"; $curl);1)]
Definir a variável [$$resultText; Value:MBS("String.ReplaceNewline"; MBS("CURL.GetResultAsText"; $curl);1)]
Definir variável [$r; valor:MBS("CURL.Cleanup"; $curl)]
Caso contrário
Apresentar a sua própria caixa de diálogo ["SMS gateway not set up"; "No master data entered!"; "OK"]
Fim (se)
Na primeira parte do guião, a cadeia de parâmetros do guião passado é primeiro extraída para variáveis individuais. Na segunda parte, o motor CURL do MBS Plugin FileMaker é inicializado. A terceira parte compõe a cadeia que conduz ao Servidor do portal SMS é enviado. O envio tem lugar no subscrito "Iniciar transferência". Na última parte, o estado do envio é escrito nas variáveis globais $$result e $$debug e pode ser lido aqui após o envio.
Descarregar base de dados de demonstração
Para que não tenha de escrever todo o código fonte no estilo C=64, fornecemos-lhe a solução descrita neste artigo como um Exemplo de ficheiro disponível para descarregar. O ficheiro de amostra encontra-se na pasta formato fmp12 e utiliza a FileMaker 12, 13 ou 14 com o Plugin MBS FileMaker antecipadamente. Se não tiver uma licença para a FileMaker Pro Advanced, mas apenas para a FileMaker Pro normal, pode utilizar este ficheiro de exemplo, que já contém a função personalizada necessária para separar a cadeia de transferência.

Markus Schall tem vindo a desenvolver bases de dados personalizadas, interfaces e aplicações empresariais baseadas na Claris FileMaker desde 1994. É um parceiro da Claris, vencedor do Prémio FMM 2011 e criador do Software ERP gFM-Business. É também autor de livros e fundador da M. Schall Publishers.


Parece-me ótimo. Existe também a possibilidade de RECEBER SMS através da FileMaker?
Muito obrigado,
Matthias
Existe uma solução "fmsms" em https://www.fmsms.comque também pode ser utilizado para receber mensagens SMS.