De Spotler MailPro REST API maakt het mogelijk om externe systemen direct te koppelen met MailPro. Hiermee kun je onder andere contacten synchroniseren, mailings aanmaken en versturen, gepersonaliseerde content toevoegen en bijlagen meesturen.
- REST Credentials aanmaken
- Autorisatie & token verkrijgen
- Documentatie & testen via Swagger
- Veelgestelde vragen
REST-credentials aanmaken
Om te kunnen werken met de REST API van Spotler MailPro, moet je eerst REST-credentials aanmaken. Dit is een combinatie van Client ID en Client Secret. Deze kunnen aangemaakt worden door een gebruiker met toegangsrechten tot de sectie REST-referenties. Zo maak je de REST-credentials aan:
- Ga naar Admin → REST-referenties.
-
Klik op Voeg toe. Het volgende scherm opent:
- Kies een naam waaraan je makkelijk kan herkennen waar de credentials voor bedoeld zijn.
- Kies de Redirect URL. In de meeste gevallen is deze niet nodig. Dan kun je https://localhost/client invullen. Bij gebruik van een externe applicatie zoals Zapier kun je hier de URL naar deze applicatie invullen.
- In de meeste gevallen kunnen de instellingen onder Client Grants hetzelfde blijven.
- Klik onderaan de pagina op Ok.
De credentials zijn nu aangemaakt en klaar voor gebruik in je codebase. Je kunt ze ook gebruiken om REST API-calls uit te proberen in onze Swagger.
Let op: een gebruikersaccount waarmee de REST-credentials zijn aangemaakt kan niet worden verwijderd zolang de credentials bestaan
Autorisatie & het verkrijgen van een token
Met je REST-credentials, kun je een POST doen om een token te ontvangen. Deze token kun je gebruiken om een uur lang geautoriseerd te blijven. Daarna moet je een nieuwe token aanvragen.
In dit voorbeeld wordt een simpele GET campaign call gedaan.
<?php
// Config settings
$clientId = '*********';
$clientSecret = '*********';
$licenseUrl = '<licenseUrl>.webpower.eu';
$cacheFile = __DIR__ . '/webpower-rest-access-token.cache';
// Haal access token op
$accessToken = null;
// Read access token from cache
if (file_exists($cacheFile)) {
$data = json_decode(file_get_contents($cacheFile), true);
if (isset($data['accessToken'], $data['expireTime']) &&
$data['expireTime'] > (time() + 30)
) {
$accessToken = $data['accessToken'];
}
}
// No access token or the cached access token expired
if (null === $accessToken) {
$params = http_build_query(
[
'grant_type' => 'client_credentials',
'client_id' => $clientId,
'client_secret' => $clientSecret,
'scope' => 'rest',
],
'',
'&'
);
$headers = [
'content-type: application/x-www-form-urlencoded',
];
$curl = curl_init('https://' . $licenseUrl . '/admin/oauth2/token.php');
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$content = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
$data = json_decode($content, true);
if (isset($data['access_token'])) {
$accessToken = $data['access_token'];
# Store in cache
$cache = json_encode([
'accessToken' => $data['access_token'],
'expireTime' => time() + $data['expires_in'],
]);
file_put_contents($cacheFile, $cache);
} else {
print 'Authentication error: ' . $data['error_description'] . "\n";
exit(1);
}
}
// Voer REST call uit met access token
$headers = [
'Authorization: Bearer ' . $accessToken,
];
$curl = curl_init('https://' . $licenseUrl . '/admin/api/index.php/rest/campaign');
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$content = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
var_dump(json_decode($content, true));
?>
Zie onderstaande voorbeelden voor een command line curl in plaats van een PHP curl:
Token ophalen:
curl -X POST -d "grant_type=client_credentials" -d "client_id=<client_id>" -d "client_secret=<client_secret>" -d "scope=rest" https://<licenseUrl>/admin/oauth2/token.php
Om de token op te halen, moeten de parameters meegenomen worden in de POST payload.
REST call uitvoeren:
curl -H 'Authorization: Bearer <access_token>' https://<licenseUrl>/admin/api/index.php/rest/campaign
Documentatie & testen via Swagger
Je vindt de Swagger documentatie voor de Spotler MailPro REST API via:
https://[licentie].webpower.eu/admin/api/swagger[licentie] moet vervangen worden door de naam van je Spotler MailPro-licentie. Deze staat in de URL die zichtbaar is, terwijl je werkt in Spotler MailPro.
Testen via Swagger
Om makkelijk te testen of je inloggegevens correct zijn en de API-calls doen wat je verwacht, kun je jezelf autoriseren via Swagger en de calls uitvoeren. Let op: Dit kan invloed hebben op je productie-omgeving. We raden aan om te testen in een aparte campagne of op een acceptatie-omgeving.
Om te beginnen met testen via Swagger:
-
Klik de Authorize knop rechtsbovenin.
-
Scrol naar boven totdat je clientCredentials ziet staan.
- Vul je client_id en client_secret in en klik op Authorize.
- Sluit het inlogscherm.
Je kunt nu de verschillende calls uitproberen door te klikken op de Try it out knop.