
L'API Sarbacane est une extension disponible dans Sarbacane. En l'activant, vous pouvez ajouter / modifier / supprimer des données dans vos listes de contacts et listes noires via de simples requêtes HTTP avec la méthode GET.
Dès son activation, un bouton « Accès API » s'ajoute dans la liste des actions sur vos listes.
Comment insérer des données dans une liste de contacts via l'API Sarbacane ?
Beaucoup de méthodes sont possibles, nous vous proposons un exemple par langage de programmation.
Commençons par créer un formulaire HTML qui servira de base pour envoyer les données dans votre liste de contacts Sarbacane.
Voici un exemple de formulaire comprenant un champ email à saisir :
<form action="" method="POST">
<input type="text" placeHolder="Email" name="email" />
<input type="text" placeHolder="Nom" name="nom" />
<input type="text" placeHolder="Prenom" name="prenom" />
<input type="submit">
</form>
Passons au traitement des données avec l'API Sarbacane.
Pour utiliser l'API Sarbacane vérifiez que l'extension "php_curl" est bien activée dans votre configuration PHP. (fichier php.ini)
Passons à l'action.
Comme certaines données restent les mêmes pour chaque appel de l'API, copiez cette fonction PHP au début du fichier qui va permettre de créer votre chaîne de départ et se connecter à l'API plus facilement.
<?php
function post_to_url($url, $data) {
$fields = '';
foreach($data as $key => $value) {
$fields .= $key . '=' . $value . '&';
}
rtrim($fields, '&');
$post = curl_init();
curl_setopt($post, CURLOPT_URL, $url);
curl_setopt($post, CURLOPT_POST, count($data));
curl_setopt($post, CURLOPT_POSTFIELDS, $fields);
curl_setopt($post, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($post);
curl_close($post);
}
?>
Comme vous avez pu le voir, pour être appelée cette fonction a besoin de 2 paramètres:
Dans Sarbacane, l'URL est disponible dans le menu "Listes de contacts" pour chaque liste de contacts créée en cliquant sur « Accès API ».
/!\ Si l'option "accès API " n'apparait pas, vérifiez que celle-ci est bien activée dans vos extensions. Menu "extensions" (1) puis "API liste de contacts / listes de désinscription" (2).
Au niveau d'une liste de contact préalablement créée, cliquez sur "Accès API" pour voir apparaitre une fenêtre expliquant les fonctions d'ajout, de modification, et de suppression des contacts dans la liste avec les URLS correspondantes.
Pour se connecter à l'API nous allons utiliser l'URL de la liste de contacts ($url). Copiez-collez l'URL qui se présente sous cette forme disponible dans la fenêtre "Accès API":
https://api-sd.sarbacane.com/lists/325/7CsS69R44UaSy7TazcRLMw?action=INSERT&Email=contact@domaine.com
Nous allons avoir besoin de garder qu'une partie de sorte à obtenir une url du type:
https://api-sd.sarbacane.com/lists/325/7CsS69R44UaSy7TazcRLMw
(troncature à droite du "?")
Nous obtenons donc:
<?php
$url = "https://api-sd.sarbacane.com/lists/325/7CsS69R44UaSy7TazcRLMw";
?>
Il faut maintenant envoyer les données ($data) à ajouter dans cette liste:
$data est un tableau comprenant les données et se présentent sous cette forme.
<?php
$data=array(
'action' => 'INSERT',
'Email' => $email
);
?>
/!\ Dans cet exemple $email a déjà été initialisé préalablement avec une adresse email.
La case "action" est obligatoire est permet de choisir quelle action est à effectuer sur les données.
Trois valeurs sont possibles : 'INSERT', 'UPDATE', 'DELETE'.
Le formulaire HTML d'exemple ci-dessus comprenait uniquement un champ 'Email' le tableau $data ne contient donc que l'entrée 'Email' pour noter exemple.
/!\ Par défaut une liste de contacts ne comporte que la colonne Email. Si vous décidez d'ajouter des colonnes à votre liste, il faudra les ajouter dans votre liste et les renseigner dans le tableau "$data".
Exemple avec une liste comprenant la colonne email, nom, prénom :
<?php
$data=array(
'action' => 'INSERT',
'Email' => $email,
'Prenom' => $prenom,
'Nom' => $nom
);
?>
Une fois les valeurs présentes dans le tableau '$data', il suffit d'envoyer celle-ci à l’API grâce à cette commande.
<?php
post_to_url($url, $data);
?>
Vos données sont désormais dans votre liste de contacts.
/!\ Sarbacane met à jour votre liste de contacts toutes les 4 minutes. Pour forcer la mise à jour de votre liste, redémarrez le logiciel.
<?php
function post_to_url($url, $data) {
$fields = '';
foreach($data as $key => $value) {
$fields .= $key . '=' . $value . '&';
}
rtrim($fields, '&');
$post = curl_init();
curl_setopt($post, CURLOPT_URL, $url);
curl_setopt($post, CURLOPT_POST, count($data));
curl_setopt($post, CURLOPT_POSTFIELDS, $fields);
curl_setopt($post, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($post);
curl_close($post);
}
// On récupère les valeurs à envoyer
$url = "https://api-sd.sarbacane.com/lists/325/7CsS69R44UaSy7TazcRLMw";
$email = $_POST["email"];
$data=array(
'action' => 'INSERT',
'Email' => $email
);
//Envoi des données
post_to_url($url, $data);
?>
Pour se connecter à l'API nous avons besoin de récupérer l'URL de notre liste de diffusion.
L'url est affichée dans le logiciel Sarbacane dans le menu "listes de diffusion" puis "accès api".
/!\ Si l'option "accès API " n'apparait pas, vérifiez que celle-ci est bien activée dans vos extensions. Menu "extensions" (1) puis "API liste de contacts / listes de désinscription" (2).
En cliquant sur "Accès API" on ouvre une liste d'option permettant d'ajouter, modifier, supprimer des contacts de la liste de diffusion.
Copiez-collez l'url de l'action à effectuer (INSERT, UPDATE, DELETE)
Pour notre exemple l'action à effectuer sera une insertion.
Exemple:
https://api-sd.sarbacane.com/lists/325/7CsS69R44UaSy7TazcRLMw?action=INSERT&Email=max@domaine.com
Cette url est composée de deux parties :
La première partie :
https://api-sd.sarbacane.com/lists/325/7CsS69R44UaSy7TazcRLMw qui permet d'identifier votre liste
Puis la seconde :
?action=INSERT&Email=max@domaine.com qui représente les données envoyées dans l'url.
La chaîne de caractères "action=INSERT" permet d'exécuter l'action à effectuer (INSERT signifie insertion dans une liste)
Le caractère '&' permet de séparer les différentes données envoyées dans l'url.
Email=max@domaine.com correspond à la colonne "Email" qui sera renseignée avec la valeur "max@domaine.com"./!\ Si votre liste dispose de plusieurs colonnes, l'url affichée par Sarbacane se complète avec les différentes données.
Voici un exemple avec une url comprenant un champ email, nom et prénom:
https://api-sd.sarbacane.com/lists/325/7CsS69R44UaSy7TazcRLMw?action=INSERT&Email=contact@domaine.com&Nom=valeur&Prenom=valeur
Une fois l'url obtenue il ne reste plus qu'à remplacer le contenu de la variable URL par votre URL comprenant vos données. (Le reste du code ASP permet d'envoyer la requête, il n'est donc pas à éditer.)
<%
url="https://api-sd.sarbacane.com/lists/325/7CsS69R44UaSy7TazcRLMw?action=INSERT&Email=contact@domaine.com&Nom=valeur&Prenom=valeur"
Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")
xmlhttp.open "GET", url, false
xmlhttp.send data
%>
La méthode est la même que pour insérer des données dans une liste de contacts via l'API, seul l'URL d'appel de l'API change.