Accueil » API SMS Octopush » Gestion des callback

Gestion des callback

Pour une intégration complète de notre service, vous devez être en mesure de nous envoyer vos requêtes d’envoi de SMS, mais aussi de recevoir les informations relatives à vos envois. Nous avons 3 types d’information à vous transmettre :

Pour cela, vous devrez mettre à disposition une même ou différentes URLs qui seront appelées par nos servers afin de vous transmettre ces informations.

Où enregistrer ces URLs ?

Dans votre interface, à gauche dans votre menu, vous aurez un lien « Callbacks ».

Vous pourrez alors, pour chaque type de callback, définir l’URL à laquelle ils seront envoyés. Cette URL doit répondre en 1 seconds environ, et ne doit renvoyer aucun affichage. Afin de ne pas gaspiller de ressources, votre script doit se contenter d’enregistrer les données. Vous devrez alors prévoir un autre processus qui viendra traiter les données, en asynchrone.

URL des Callbacks

Ces callbacks se font par requêtes HTTP POST.
Il peut s’agir de trois URL différentes, ou d’une même URL, dans laquelle vous différenciez les traitements en fonction des champs reçus.

Exemple : selon que vous recevez reception_date, delivery_date ou stop_date, vous pouvez facilement identifier le type de callback.

Restrictions particulières

La page ciblée par l’URL que vous nous fournissez ne doit rien afficher, ni même un corps de HTML vierge.
Elle doit également répondre en moins de 1 seconde. Le traitement des données reçues doit obligatoirement être fait en asynchrone.

  1. Enregistrez en base les données reçues.
  2. Activez un script/services/cron qui s’occupera de traiter ces données.

Ceci permet d’accéder les échanges entre nos servers et le(s) votre(s) sans surcharger inutilement les connexions.

Recommandations

  • Testez votre page avant de nous la transmettre, en l’appelant avec une commande CURL par exemple.
  • Désactivez l’affichage des erreurs (pour éviter toute erreur warning, notice, fatal, etc…).
  • N’afficher aucun message, mais redirigez les vers un fichier de log.
  • Enfin, pour de meilleurs performances, effectuez le traitement des données reçues en asynchrone : enregistrez simplement les données quelque part (fichier ou db-table) et déléguez-en le traitement par un autre script (cron ou trigger).