Démarrage rapide
Vous allez obtenir une clé API depuis le portail développeur, puis
envoyer un seul SMS à votre propre téléphone. À la fin vous aurez un
message_id et un statut pending depuis le sandbox.
Étape 1 — Générer une clé API
Section intitulée « Étape 1 — Générer une clé API »Ouvrez le portail développeur dans le tableau de bord Bloonio, passez
à l’onglet Clés API et cliquez sur Générer une clé API. La clé
api_key en clair est affichée exactement une fois. Copiez-la
immédiatement dans un coffre à secrets — elle n’est pas récupérable de
la base de données une fois la bannière fermée.
Voir Clés API pour le flux complet de gestion, y compris la rotation et la configuration des webhooks.
Étape 2 — Envoyer le SMS
Section intitulée « Étape 2 — Envoyer le SMS »Le même appel fonctionne depuis n’importe quel langage. Choisissez l’onglet correspondant à votre stack.
curl $BASE_URL/api/v1/lisoloo/sms-api/send \ -X POST \ -H "app-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "to": ["+243998857000"], "message": "Bonjour de Lisoloo !", "sender_id": "MYAPP" }'import requests
API_URL = "$BASE_URL/api/v1/lisoloo/sms-api"API_KEY = "YOUR_API_KEY"
response = requests.post( f"{API_URL}/send", headers={ "app-key": API_KEY, "Content-Type": "application/json", }, json={ "to": ["+243998857000"], "message": "Bonjour de Lisoloo !", "sender_id": "MYAPP", }, timeout=10,)response.raise_for_status()
result = response.json()print(f"Message ID : {result['data']['message_id']}")print(f"Statut : {result['data']['status']}")const API_URL = "$BASE_URL/api/v1/lisoloo/sms-api";const API_KEY = "YOUR_API_KEY";
const response = await fetch(`${API_URL}/send`, { method: "POST", headers: { "app-key": API_KEY, "Content-Type": "application/json", }, body: JSON.stringify({ to: ["+243998857000"], message: "Bonjour de Lisoloo !", sender_id: "MYAPP", }),});
if (!response.ok) { throw new Error(`Échec SMS : ${response.status}`);}
const { data } = await response.json();console.log("Message ID :", data.message_id);console.log("Statut :", data.status);<?php
$apiUrl = '$BASE_URL/api/v1/lisoloo/sms-api';$apiKey = 'YOUR_API_KEY';
$ch = curl_init();curl_setopt_array($ch, [ CURLOPT_URL => "$apiUrl/send", CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_HTTPHEADER => [ "app-key: $apiKey", 'Content-Type: application/json', ], CURLOPT_POSTFIELDS => json_encode([ 'to' => ['+243998857000'], 'message' => 'Bonjour de Lisoloo !', 'sender_id' => 'MYAPP', ]),]);
$response = curl_exec($ch);$result = json_decode($response, true);curl_close($ch);
echo "Message ID : " . $result['data']['message_id'] . PHP_EOL;echo "Statut : " . $result['data']['status'] . PHP_EOL;Vous obtenez en retour, en cas de succès :
{ "status_code": 201, "data": { "message_id": "507f1f77bcf86cd799439011", "total_recipients": 1, "total_messages": 1, "total_cost": 0.02, "currency": "USD", "status": "pending", "sending_type": "immediate" }}En quelques secondes le message passera de pending à processing,
puis sent, puis delivered. Vous pouvez interroger
GET /status/{message_id} pour observer les transitions, ou attendre
que le webhook se déclenche (s’il est configuré).
Étape 3 — Vérifier le statut
Section intitulée « Étape 3 — Vérifier le statut »curl $BASE_URL/api/v1/lisoloo/sms-api/status/507f1f77bcf86cd799439011 \ -H "app-key: YOUR_API_KEY"message_id = result["data"]["message_id"]status_resp = requests.get( f"{API_URL}/status/{message_id}", headers={"app-key": API_KEY}, timeout=10,)print(status_resp.json())const statusResp = await fetch(`${API_URL}/status/${data.message_id}`, { headers: { "app-key": API_KEY },});console.log(await statusResp.json());$messageId = $result['data']['message_id'];
$ch = curl_init("$apiUrl/status/$messageId");curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ["app-key: $apiKey"],]);echo curl_exec($ch);curl_close($ch);Ce qui vient de se passer
Section intitulée « Ce qui vient de se passer »- Vous vous êtes authentifié auprès de la passerelle avec l’en-tête
app-key. - La passerelle a validé la clé, calculé le coût (1 SMS × 1 destinataire × prix unitaire), et mis le message en file.
- Le connecteur opérateur l’a récupéré, l’a envoyé à travers le réseau, et a renvoyé un accusé de livraison à la passerelle.
- La passerelle a émis l’accusé vers votre
callback_urlsi vous en avez défini un, ou vers le webhook configuré sur votre clé API.
Étapes suivantes
Section intitulée « Étapes suivantes »- Recevoir les accusés de livraison de façon asynchrone. Configurez un webhook sur votre clé API. Voir Présentation des webhooks.
- Envoyer à plusieurs destinataires. Le tableau
toaccepte jusqu’à 1 000 numéros en un appel. Voir Envoyer un SMS instantané. - Planifier l’envoi. Définissez
sending_type: "scheduled"et passezscheduled_dates. Voir Planifier un SMS. - Gérer les erreurs. Lisez Erreurs et le catalogue d’erreurs.