Saltar ligações

Envie SMS com o FileMaker e o plugin MBS.

smstrade SMS Gateway

Envio de mensagens SMS com a FileMakerNeste artigo técnico, explicamos como enviar mensagens SMS diretamente da sua aplicação FileMaker utilizando o plugin MBS.Base de dados a partir do programa. Para isso, criamos um script parcial que pode enviar qualquer mensagem SMS para qualquer destinatário, chamando-o com cinco parâmetros. Neste exemplo, utilizamos o fornecedor alemão smstrade como gateway para o envio de mensagens SMS.

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.
smstrade SMS Gateway

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.

Descarregar a base de dados de amostras de SMS

Deixar um comentário

Partilhar esta página:

Um software ERP tão flexível como a sua empresa.
Teremos todo o prazer em o aconselhar.

Software ERP personalizável para Mac, Windows e iOS.

Você está aqui: Envio de mensagens SMS com FileMaker e MBS Plugin