PHP API koppeling tussen AllUnited en Laposta.nl gemaakt

Een paar maanden geleden heb ik een blog geschreven over de migratie van Joomla AcyMailing naar Laposta.nl voor mijn atletiekvereniging. Inmiddels zijn er al vele nieuwsbrieven vanuit Laposta.nl verstuurd. Het enige nadeel was nog het handmatig bijwerken van de abonnees die de nieuwsbrieven moeten ontvangen.

PHP API koppeling tussen AllUnited en Laposta.nl.

E-mailadressen handmatig exporteren en importeren:

In de tijd van Joomla AcyMailing was dit al een handmatig actie door de voornaam + achternaam + e-mailadressen uit AllUnited naar CSV te exporteren. Deze konden dan weer handmatig geïmporteerd worden.

Deze werkwijze is ook nog gehanteerd na de migratie naar Laposta.nl. Gezien de velen ledenmutaties op weekbasis moest dit iedere keer gebeuren voordat een nieuwsbrief verstuurd kon worden. Met soms 2-3 nieuwsbrieven per maand kost dit tijd, is foutgevoelig en behoorlijk saai werk.

> Bekijk meer blogs over AllUnited

Exporteren en importeren automatiseren:

Ik heb daarom in PHP API koppeling, ook wel middle man genoemd, die data uit AllUnited verstuurd naar Laposta.nl.

Stap 1 – API functie activeren in AllUnited

Standaard staat de API functionaliteit, om data uit AllUnited te halen via een API endpoint, uitgeschakeld. Deze moet door de support afdeling van AllUnited ingeschakeld worden. Stuur hiervoor een support ticket in. Er worden wel kosten voor gerekend. Ik heb eenmalig 60 euro moeten betalen.

Meestal is dit binnen 1 week geregeld. Je ontvangt vervolgens een handleiding hoe je verbinding kan maken inclusief de benodigde authenticatie sleutels.

Stap 2 – Rapport maken met selectie wizard

Met de API kan je vervolgens data van selectie wizards ophalen. Selectie wizards zijn de rapporten die je zelf in AllUnited kan maken. Hiervoor heb je wel wat ervaring nodig.

Je kan dit ook door de support afdeling van AllUnited laten doen. Maar hiervoor worden kosten in rekening gebracht.

Ik heb zelf een selectie wizard gemaakt met de volgende kolommen:

  • Voornaam (Relaties)
  • Naam (van Achternaam)* (Relaties)
  • E-mail (Relaties) – opgegeven dat het veld niet leeg moet zijn
  • Clubblad/Nieuwsbrief (Relaties)
  • Blokkeer commerciële berichten (Relaties)

Onderin bij “Waar te gebruiken” vink ik aan:

  • Menu
    • Relaties
    • Nieuwsbrief
  • Overige
    • API
  • Acties
    • Rapportage
    • Bestanden (voor handmatige export)

Hierdoor heb ik een overzicht van:

  • Alle leden met een e-mailadres
  • De kolom Clubblad/Nieuwsbrief geeft of iemand een nieuwsbrief wil met
    • v = versturen
    • b = blokkeren (geen nieuwsbrief)
    • a = automatisch
  • Blokkeer commerciële berichten (hier doen wij niets mee)
  • Deze data is beschikbaar via de API
  • Ik kan er ook een overzicht van generen
  • Het overzicht kan ik naar CSV exporteren

Stap 3 – Laposta.nl API instellen

In stap 2 heb je de API geregeld aan de kant van AllUnited. Maar dit moet je ook doen aan de kan van Laposta.nl. Dat is heel gemakkelijk.

  1. Login op Laposta.nl
  2. Klik links onderin op “Koppelingen”
  3. Klik op “Nieuwe API sleutel”
  4. Vul de velden in
  5. Klik op “Opslaan en sleutel tonen”

Laposta.nl heeft ook duidelijke documentatie inclusief voorbeelden. Daarnaast bieden ze een PHP bibliotheek aan die je via Github kan downloaden. Dit is heel handig wat het scheelt mij code schrijven.

AllUnited biedt geen bibliotheek aan om met hun RESTFUL API omgeving te communiceren. Dus dit heb ik opgelost met cUrl().

Omdat wij gebruik maken van de gratis versie van Laposta.nl mag ik maar 30 API verzoeken per minuut doen. Daarom wacht ik na iedere API call 2 seconden middels een PHP sleep(2);. Loop ik zeker niet tegen een limiet aan.

Stap 4 – Use cases uitwerken:

De volgende stap is het uitwerken van de use cases (situaties) waar de PHP API koppeling rekening mee moet houden. De uitgangssituatie is dat AllUnited de bron is van de data en Laposta.nl volgt die bron 1 op 1.

Use cases:

  1. Nieuwe leden in AllUnited moeten toegevoegd worden aan Laposta.nl
  2. Leden die zich afmelden in Laposta.nl moeten afgemeld worden in AllUnited
  3. Leden die zich afmelden in AllUnited moeten afgemeld worden in Laposta.nl
  4. Leden die geen lid meer zijn in AllUnited moeten afgemeld worden in Laposta.nl
  5. Alle e-mailadressen in Laposta.nl moeten ook voorkomen in AllUnited
  6. Laposta.nl mag geen e-mailadressen bevatten die niet voorkomen in AllUnited

Stap 5 – Ontwikkeling van PHP API koppeling:

Vervolgens heb ik een oplossing uitgewerkt. Ik begon met een PHP bestand. Maar om het overzichtelijk te houden werden dit er al snel meer. Daarnaast gebruik ik ook de bibliotheek van Laposta.nl.

Uiteindelijk heb ik een config.php bestand gemaakt. Hierin zitten alle configuratie instellingen. In theorie betekent dit dat je alleen deze instellingen aan hoeft te passen en dat de oplossing dan out of the box werkt.

Ik ga mijn PHP API koppeling niet in detail bespreken. Je kan deze wel hieronder in een ZIP bestand downloaden en bekijken.

Als je mijn PHP API koppeling gebruikt ga je akkoord met deze voorwaarden:

  • Je mag de code niet publiceren op een andere website en/of medium
  • Je mag de code niet verkopen aan een persoon, bedrijf of organisatie
  • Je mag de code aanpassen, maar deel jouw wijzigingen met de rest van de wereld
  • Timdehoog.nl is niet verantwoordelijk voor schade die ontstaat door gebruik

Download LapostaAllunitedAPIConnection – Versie 1.2.0 (03-01-2025) / PHP 7.4 of hoger

Gebruik je mijn PHP API koppeling? Laat het dan weten in de reacties hieronder of vul het contactformulier in. Meldt ook je aan voor mijn nieuwsbrief zodat je automatisch op de hoogte wordt gebracht van nieuwe versies.

Laat een reactie achter

Je e-mailadres zal niet worden gepubliceerd. vereiste velden zijn gemarkeerd met *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.