Api : création d’une diffusion
DMC met à votre disposition un certain nombres de fonctions pour créer et envoyer une diffusion via les API (en json) avec la méthode GET mais le POST fonctionne aussi.
Prérequis
- Avoir souscris aux API
- Avoir reçu sont mot de passe API.
Dans les exemples ci-dessous, la ponctuation (les crochets et autres parenthèses) doivent être strictement respectée.
Première étape
Création de la diffusion : méthode createBroadcast.
- Identification : la variable authenticate contient le json d’authentification qui est composé comme ci dessous.
authenticate={
"serviceId": "900000000",
"servicePassword": "mdpapi",
"spaceId": "000",
"lang": "fr_FR"
}
Dans l’exemple ci-dessus, vous devez renseigner
- serviceId => votre numéro de service.
- servicePassword => le mot de passe reçu lors de votre déploiement.
- spaceID => l’espace que vous voulez utiliser pour vos envoi via API.
Cette variable Json sera à renseigner pour chaque méthode.
2. Diffusion : la variable broadcast contient les informations de la diffusion
&broadcast={
"callPlanningId": "55",
"scenarioId": "122",
"broadcastName": "Nom de la diffusion"
}
Dans l’exemple ci-dessus, vous devez renseigner
- CallPlanningId => Id du planning (pour connaître cet Id, via l’extranet, via API)
- scenarioId => Id du scénario (pour connaître cet Id, via l’extranet, via API)
- BroadcastName => Champ alphanumérique libre qui apparaîtra dans la liste des diffusions.
3. Message : la variable liste customizableMessage contient les informations sur le message
customizableMessage=[
{
« customizableId »: « 00000 »,
« text »: « Texte à envoyer. A bientôt avec DMC. »
}
]
Dans l’exemple ci-dessus, vous devez renseigner
- customizableId => Id permettant l’utilisation du scénario (pour connaître cet Id, via l’extranet, via API)
- text => contient le texte du message à envoyer. Peut être du HTML dans le cas d’un mail. Limité à 4095 caractères
Avec l’ensemble de ces variables décrites ci-dessus vous pouvez constituer votre url d’appel de la méthode createBroadcast. Les éléments en rouge doivent être remplacés par vos propres données.
https://www.dmc.sfr-sh.fr/DmcWS/1.5.7/JsonService/BroadcastWS/createBroadcast?authenticate={
"serviceId": "900000000",
"servicePassword": "mdpAPI",
"spaceId": "00000",
"lang": "fr_FR"
}&broadcast={
"callPlanningId": "55",
"scenarioId": "122",
"broadcastName": "Nom de la diffusion"
}&customizableMessage=[
{
"customizableId": "00000",
"text": "Texte à envoyer. A bientôt avec DMC."
}
]
Ou utiliser l’api workshop pour constituer et tester votre requête :
Une fois la requête exécutée la méthode vous retourne :
- En cas d’erreur le champ sucess est à « false ». Et les champ « errorCode » et « errorDetail » vous indique la cause de l’erreur.
{
"success":false,
"errorCode":"BEANPARAMETER_REQUIRED",
"errorDetail":"Dans l\u0027objet customizableMessage le paramètre customizableId est requis",
"fatal":true,
"invalidParams":true
}
- En cas de succès le champ success est à « true »
{
"success":true,
"response":{
"broadcastName":"Nom de la diffusion",
"broadcastId":197861536,
"priority":2,
"startDate":1646751423395,
"stopDate":1646924223395,
"scenarioName":"Sms",
"scenarioId":122,
"callPlanningId":55,
"callPlanningName":"Planning 24/7",
"maxSimultaneousContact":0,
"broadcastOrigin":"WS",
"spreading":false
}
}
Vous devez récupérer le broadcastId pour les étapes suivantes (en bleu ci-dessus).
Vous pouvez voir cette diffusion sur l’extranet DMC dans liste de diffusions.
Son état est en mode « Edition » car nous sommes à l’étape création de la diffusion. Si vous n’exécutez pas les étapes suivantes, la diffusion ne « partira » jamais.
Etape 2
Ajouter des contacts
Plusieurs méthodes permettent cela.
- addContactToBroadcast : Ajoute un ou plusieurs contacts.
- addGroupContactToBroadcast : Ajouter les contacts d’un groupe dans une diffusion (si vous utilisez les contacts de DMC)
- importContactBroadcast : Importer un fichier de contacts (format csv) que vous devez au préalable charger sur la machine avec la méthode uploadService.
- insertContactFromDocument : Importer des contacts à partir d’un fichier csv déposé dans les documents DMC.
Exemple d’utilisation de addContactToBroadcast pour ajouter un seul contact (le champ numéro de téléphone uniquement).
https://www.dmc.sfr-sh.fr/DmcWS/1.5.7/JsonService/BroadcastWS/addContactToBroadcast?authenticate={
"serviceId": "900000000",
"servicePassword": "mdpAPI",
"spaceId": "00001",
"lang": "fr_FR"}
&contact=[{"phoneNumber1": "0600000001"}
]&broadcastId="197861536"
réponse de la méthode :
{
"success":true,
"response":[
{
"saved":true,
"contactId":4514415690
}
]
}
Autre possibilité d’utilisation avec addContactToBroadcast pour plusieurs contacts (le champ numéro de téléphone uniquement).
Le nombre de contacts maximum autorisé par appel est limité à 100.
https://www.dmc.sfr-sh.fr/DmcWS/1.5.7/JsonService/BroadcastWS/addContactToBroadcast?authenticate={
"serviceId": "900000000",
"servicePassword": "mdpAPI",
"spaceId": "0001",
"lang": "fr_FR"
}&contact=[
{
"phoneNumber1": "0600000002"
},
{
"phoneNumber1": "0600000001"
}
]&broadcastId="197861536"
Réponse de la méthode
{
"success":true,
"response":[
{
"saved":true,
"contactId":4514415693
},
{
"saved":false,
"error":"Ce contact existe déjà",
"errorCode":"DATABASE_CONSTRAINT_ERROR"
}
]
}
Vous remarquerez que l’ajout tient compte des doublons éventuels.
3eme étape
lancer la diffusion : activateBroadcast
https://www.dmc.sfr-sh.fr/DmcWS/1.5.7/JsonService/BroadcastWS/activateBroadcast?authenticate={
"serviceId": "900000000",
"servicePassword": "mdpAPI",
"spaceId": "0001",
"lang": "fr_FR"
}&broadcastId="197861536"
Réponse de la méthode
{
"success":true,
"response":{
"broadcastName":"Nom de la diffusion",
"broadcastId":197861536,
"priority":2,
"startDate":1646751423395,
"stopDate":1646924223395,
"scenarioName":"Sms simple",
"scenarioId":27120,
"callPlanningId":84,
"callPlanningName":"Planning 24/7",
"maxSimultaneousContact":0,
"status":"Chargement en cours",
"statusCode":"BR_LOADING",
"runningContactNumber":0,
"endedContactNumber":0,
"totalContactNumber":2,
"broadcastOrigin":"WS",
"spreading":false
}
}
Sur l’extranet vous verrez que la diffusion a bien changé d’état.
Connaitre l’état de la diffusion
La méthode getBroadcast
https://www.dmc.sfr-sh.fr/DmcWS/1.5.7/JsonService/BroadcastWS/getBroadcast?authenticate={
"serviceId": "900000000",
"servicePassword": "mdpAPI",
"spaceId": "0001",
"lang": "fr_FR"
}&broadcastId="197861536"
réponse de la méthode
{
"success":true,
"response":{
"broadcastName":"Nom de la diffusion",
"broadcastId":197861536,
"priority":2,
"startDate":1646751423395,
"stopDate":1646924223395,
"scenarioName":"Sms simple",
"scenarioId":27120,
"callPlanningId":84,
"callPlanningName":"Planning 24/7",
"maxSimultaneousContact":0,
"status":"Terminée",
"statusCode":"BR_FINISHED",
"broadcastOrigin":"WS",
"spreading":false
}
}
Cette méthode correspond à ce qui apparait dans la liste des diffusions de l’extranet
La méthode findBroadcastCra
https://www.dmc.sfr-sh.fr/DmcWS/1.5.7/JsonService/SupervisionWS/findBroadcastCra?authenticate={
"serviceId": "900000000",
"servicePassword": "mdpAPI",
"spaceId": "0001",
"lang": "fr_FR"
}&broadcastId="197861536"
Réponse de la méthode
{
"success":true,
"response":{
"list":[
{
"contactId":4514412539,
"spaceId":106137,
"active":false,
"creationDate":1646756793916,
"phoneNumber1":"0600000001",
"broadcastId":197861536,
"callAttempts":1,
"callDate":1646757948313,
"statusLastChange":1646757949000,
"callAdress":"+33646090992",
"callResult":"Reçu",
"callResultCode":"CRA_SMS_RECEIVED",
"status":"DONE",
"callDetail":"1 partie(s)",
"quotaOccurs":0
},
{
"contactId":4514447522,
"spaceId":106137,
"active":false,
"creationDate":1646757660898,
"phoneNumber1":"0600000002",
"broadcastId":197861536,
"callAttempts":1,
"callDate":1646757947315,
"statusLastChange":1646757958000,
"callAdress":"+33646090993",
"callResult":"Numéro erroné",
"callResultCode":"CRA_SMS_BADNUMBER",
"status":"FAILED",
"callDetail":"1 partie(s)",
"quotaOccurs":0
}
],
"total":2
}
}
Ceci est l’équivalent du compte rendu de la diffusion dans l’extranet.