Documentation

Deliverabilité

Event API

target= »_blank »>http://www.critsend.com/documentation/api/event/ Il vous suffit d’ajouter dans votre page l’url à laquelle nous devons vous envoyer les données , celles-ci sont envoyées au format json par lot comme par exemple : [ {      "category": "hard_bounce",      "date": "2011-09-02T14:39:53",      "recipient": "recipient1@example.org",      "mx": "example.com",      "tags": ["default", "tag1"],      "uid": "CC27F483098347ECB693EC7A1CAF45E9"     },     {         "category": "blocked",      "date": "2011-09-02T14:55:53",      "recipient": "recipient2@example.org",      "mx": "example.com",      "tags": ["default", "tag2"],      "uid": "A5DA637119D041BABAE316D3E908FF0A"     },     ... ] Event API format L’évènement JSON contient les items suivants: *
Field Type Description
category String Le nom de l’événement.
date String L’heure de l’événement (YYYY-MM-DDTHH:MM:SS).
diagnostic-code String Les informations complémentaires (Bounce code, .. )
mx String L’hébergeur de votre destinataire (Gmail, Yahoo,…)
recipient String Le destinataire du message
status-code String En cas de bounce le code retourné
tags Array Un tableau contenant le tags de votre message.
uid String Chaine texte passée par vos soins à l’origine  (ex. A650139AB25-4E13A10D349EF3712ACC).
Vous pourrez sur la même page de notre site , configurer les événements que vous souhaitez recevoir. open: L’email a été ouvert (Seulement si vous avez activé l’option dans votre compte) click: Le destinataire a cliqué dans un lien unsubscribed: Votre destinataire a cliqué sur le lien, ne plus recevoir bounce: L’email est refusé pour une raison non critique (Boite pleine, Compte non actif) blocked: L’email envoyé n’a pas été reçu par le destinataire, l’hébergeur refusant de communiquer avec nous spam_report: L’email envoyé a été marqué comme spam par le destinataire filtered: L’email envoyé n’a pas été traité car présent dans la base de filtrage error: Le mail a subi une erreur new_failed_address: Nouvel échec d’envoi sur cette adresse email blacklisted_address: Une adresse email a été ajoutée à votre base de filtrage unblacklisted_address: Une adresse email a été retirée de votre base de filtrage Sécurité autour des webhooks Vous trouverez la clé de sécurité sur la page https://myaccount.critsend.com/delivery/event_api. Chaque envoi d’événement sera authentifié avec cette clé pour vous garantir que les appels viennent de notre plateforme, vous trouverez ci-dessous des exemples de code d’intégration. Exemple en Python import hmac, hashlib  def is_authenticated(your_webhooks_key, your_request_json_payload,                  x_critsend_webhooks_signature): my_signature = hmac.new(key=your_webhooks_key,                          msg=your_request_json_payload,                          digestmod=hashlib.sha256).hexdigest() return x_critsend_webhooks_signature == my_signature Authentication example in PHP:  function is_authenticated($your_webhooks_key, $your_request_json_payload,          $x_critsend_webhooks_signature) { $my_signature = hash_hmac("sha256", $your_request_json_payload, $your_webhooks_key); return $x_critsend_webhooks_signature == $my_signature; } Exemple en PHP $our_webhooks_key = "xxxxxxxxxxxxxxx"; $critsend_signature = $_SERVER["HTTP_X_CRITSEND_WEBHOOKS_SIGNATURE"]; $json_payload = file_get_contents('php://input');  # Check if payload is valid if($critsend_signature != hash_hmac("sha256", $json_payload, $our_webhooks_key))   throw exception("Invalid payload according to our webhooks key");  $events = json_decode($json_payload); foreach($events as $event) {   switch($event["category"])   { case "open": event_open($event); break; case "click": event_click($event); break; case "unsubscribed": event_unsubscribe($event); break; case "hard_bounce": event_hard_bounce($event); break; case "soft_bounce": event_soft_bounce($event); break; case "blocked": event_blocked($event); break; case "spam_report": event_spam_report($event); break; case "filtered": event_filtered($event); break; case "error": event_error($event); break; default: throw exception("Invalid category");   } }