
Deze dienst biedt het versturen van SMS berichten naar Duitse netwerken vanaf 1,6 cent per bericht; SMS berichten kunnen wereldwijd verstuurd worden tegen prijzen vanaf 4,9 cent per bericht, plus 19% BTW in elk geval. Na registratie zijn er om te beginnen 30 gratis SMS-berichten beschikbaar, die voor testdoeleinden kunnen worden verzonden. Er zijn geen maandelijkse basiskosten bij deze provider. Hieronder lees je hoe je rechtstreeks vanuit je FileMaker database automatisch SMS berichten kunt versturen.
Registratie bij smstrade
Om SMS-berichten via de SMS gateway te kunnen versturen, moet u zich eerst registreren bij smstrade. Registratie is gratis en omvat het verzenden van maximaal 30 gratis sms-berichten om mee te beginnen.
Stamgegevens voor de SMS gateway
Ten eerste zijn er drie velden nodig in uw FileMaker database om de toegangs- en stamgegevens voor de SMS gateway te bevatten. Deze velden gelden globaal voor gebruik in uw hele FileMaker oplossing. Als alternatief kunt u ook globale variabelen gebruiken in plaats van velden, die worden gemaakt in een Script moet worden geïnitialiseerd. De volgende velden zijn vereist voor de stamgegevens om SMS-berichten te verzenden:
- Afzender - Identificatie van de afzender van de SMS, bijv. '0049123456789' of '+49123456789'.
- Gateway-sleutel - Gateway-sleutel, die je ontvangt na registratie op smstrade.de.
- Route - smstrade biedt drie tariefopties:
- basis voor het versturen van SMS-berichten binnen Duitsland
- goud voor wereldwijde verzending met elke afzenderidentificatie
- direct voor wereldwijde verzending rechtstreeks via de netwerkoperator
Maak drie velden of globale variabelen aan in je database die je overal in je oplossing kunt gebruiken. Voer na registratie bij smstrade de stamgegevens in de corresponderende velden in. Voor het versturen van SMS berichten binnen Duitsland raden we de 'basis' tariefoptie aan.
Het script voor het verzenden van SMS
In de volgende stap zullen we een script programmeren waarmee je SMS-berichten kunt versturen naar elke ontvanger uit de hele database. Het script kan later worden opgeroepen met de volgende vijf scriptparameters:
- Ontvanger - Telefoonnummer van de ontvanger, bijvoorbeeld '0049123456789' of '+49123456789'.
- Tekst - Tekst van het SMS-bericht (maximaal 1.530 tekens als gekoppelde SMS)
- Afzender - De afzender-ID wordt meestal gegenereerd uit het stamgegevensveld.
- Gateway-sleutel - De gatewaysleutel wordt meestal gegenereerd uit het stamgegevensveld.
- Route - Route (tarief), wordt meestal gegenereerd uit het stamgegevensveld.
Als je de velden 'Sender', 'Gateway Key' en 'Route' aanmaakt vanuit stamgegevensvelden, moet het script eerst controleren of deze velden ook onderhouden zijn. Daarom bevat ons script aan het begin een bijbehorende query. Hieronder vind je het volledige script voor het versturen van SMS berichten met ondersteuning van de MBS FileMaker plugin.
Scriptparameters doorgeven
Wanneer dit script wordt aangeroepen, worden vijf scriptparameters doorgegeven in een string waarvan de waarden worden gescheiden door een apostrof (|). Om de string te scheiden, gebruiken we een Eigen functie genaamd "StringTrennen". Om het getoonde script te kunnen gebruiken, maak je eerst het volgende aan Aangepaste functie (aparte functie) in FileMaker Pro Advanced:
StringDisconnect (String; getal)
Als(getal = 1;
CharacterLinks ( String; (Positie ( String; "|"; 1; 1))-1);
CharacterCentre ( String;
(Positie ( String; "|"; 1; Getal-1))+1;
(Positie ( String; "|"; 1; Getal)) - ((Positie ( String; "|"; 1; Getal-1))+1)
)
)
Script voor het verzenden van SMS
Als je de bovenstaande aangepaste functie hebt ingevoegd of een andere aangepaste functie hebt die tekenreeksen gescheiden door een teken kan extraheren, maak dan een nieuw script in de scripteditor en geef het een subscriptnaam volgens je persoonlijke naamgevingsschema (bijv. 'ts.SMS_Versand').
Als [NOT IstLeer(Afzender) AND NOT IstLeer(Sleutel) AND NOT IstLeer(Route)]
#Script parameters: Tel | Tekst | Van | Sleutel | Route
Stel variabele [$tel_nr; Waarde:StringTrennen(Get(ScriptParameter); 1)] in.
Stel variabele [$text; Waarde:StringDisconnect(Get(ScriptParameter); 2)] in.
Stel variabele [$from; Waarde:StringDisconnect(Get(ScriptParameter); 3)] in.
Stel variabele [$key; Waarde:StringDisconnect(Get(ScriptParameter); 4)] in.
Stel variabele [$route; Waarde:StringTrenn(Get(ScriptParameter); 5)] in.
#
# Overdracht initialiseren
Stel variabele [$r; Waarde:MBS("Trace")] in.
Stel variabele [$to; waarde:MBS("String.EncodeURLComponent"; $tel_nr; "utf8")] in.
Stel variabele [$from; waarde:MBS("String.EncodeURLComponent"; $from; "utf8")] in.
Stel variabele [$body; Waarde:Exchange(MBS("String.EncodeURLComponent"; $text; "utf8"); ""; "+")] in.
Stel variabele [$curl; Waarde:MBS("CURL.New")] in.
Variabele instellen [$result; waarde:MBS("CURL.SetOptionpost"; $curl; 1)]
Stel variabele [$result; Waarde:MBS("CURL.SetOptionVerbose"; $curl; 1)] in.
Variabele instellen [$result; Waarde:MBS("CURL.SetOptionURL"; $curl; "https://gateway.smstrade.de")]
#
# Invoergegevens XML en SMS instellen
Stel variabele [$content; waarde: "key=" & $key & "&" & "to=" & $to & "&" & "message=" & $body & "&" &
"route=" & $route & "&" & "from=" & $from & "&" & "charset=utf-8"].
Stel variabele [$content; Waarde:MBS("String.ReplaceNewline"; $content; 2 )] in.
Variabele instellen [$result; Waarde:MBS("CURL.SetOptionPostFields"; $curl; $content)].
#
# Start overdracht
Stel variabele [$result; Waarde:MBS("CURL.Perform"; $curl)] in.
#
# Resultaat controleren
Stel variabele [$$debugText; Waarde:MBS("String.ReplaceNewline"; MBS("CURL.GetDebugAsText"; $curl);1)] in.
Stel variabele [$$resultText; Waarde:MBS("String.ReplaceNewline"; MBS("CURL.GetResultAsText"; $curl);1)] in.
Stel variabele [$r; waarde:MBS("CURL.Cleanup"; $curl)] in.
Anders
Geef uw eigen dialoogvenster weer ["SMS gateway niet ingesteld"; "Geen stamgegevens ingevoerd!"; "OK"].
Einde (als)
In het eerste deel van het script wordt de doorgegeven scriptparameterstring eerst geëxtraheerd in individuele variabelen. In het tweede deel wordt de CURL-engine van de MBS FileMaker-plugin wordt geïnitialiseerd. Het derde deel stelt de string samen die leidt naar de Server van de SMS gateway wordt verzonden. De verzending vindt plaats in het subscript "Start transfer". In het laatste deel wordt de verzendstatus geschreven naar de globale variabelen $$result en $$debug en kan hier na verzending worden uitgelezen.
Demodatabase downloaden
Zodat je niet de hele broncode in C=64-stijl hoeft uit te typen, bieden we je de oplossing die in dit artikel wordt beschreven als een Voorbeeldbestand beschikbaar om te downloaden. Het voorbeeldbestand staat in de fmp12-formaat en FileMaker 12, 13 of 14 gebruikt met geïnstalleerde MBS FileMaker-plugin vooraf. Als u geen licentie hebt voor FileMaker Pro Advanced, maar alleen voor de normale FileMaker Pro, kunt u dit voorbeeldbestand gebruiken, dat al de aangepaste functie bevat die nodig is voor het scheiden van de overdrachtstring.

Markus Schall ontwikkelt sinds 1994 databases, interfaces en bedrijfstoepassingen op maat op basis van Claris FileMaker. Hij is Claris-partner, FMM Award-winnaar 2011 en ontwikkelaar van de ERP-software gFM-Business. Hij is ook auteur van boeken en oprichter van de M. Schall Uitgevers.


Klinkt geweldig. Is er ook een mogelijkheid om SMS te ONTVANGEN via FileMaker?
Hartelijk dank,
Matthias
Er is een oplossing "fmsms" op https://www.fmsms.comdie ook kan worden gebruikt om sms-berichten te ontvangen.