Koppelingen overslaan

SMS versturen met FileMaker en de MBS plugin.

smstrade SMS gateway

SMS-berichten versturen met FileMakerIn dit technische artikel leggen we uit hoe je rechtstreeks vanuit je FileMaker applicatie SMS-berichten kunt versturen met behulp van de MBS plugin.Database vanuit het programma. Om dit te doen, maken we een deelscript dat elk SMS-bericht naar elke ontvanger kan sturen door het aan te roepen met vijf parameters. In dit voorbeeld gebruiken we de Duitse provider smstrade als gateway voor het verzenden van SMS-berichten.

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

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.

SMS-voorbeelddatabase downloaden

Laat een reactie achter

Deel deze pagina:

ERP-software zo flexibel als uw bedrijf.
We geven je graag advies.

Aanpasbare ERP-software voor Mac, Windows en iOS.

U bevindt zich hier: SMS-berichten versturen met FileMaker en MBS Plugin