Envoi de SMS en Kotlin : API de la bibliothèque sms-client-kotlin
Les applications mobiles modernes et les solutions serveur nécessitent souvent une intégration avec des passerelles SMS pour envoyer des notifications, des confirmations ou des messages marketing. Pour le langage Kotlin, il existe une bibliothèque pratique sms-client-kotlin qui fournit une API simple et typée pour travailler avec les fournisseurs de SMS populaires. Dans cet article, nous allons détailler son architecture, ses méthodes et des exemples d'utilisation.
Qu'est-ce que sms-client-kotlin ?
La bibliothèque sms-client-kotlin est un client HTTP léger, écrit en Kotlin pur avec l'utilisation de coroutines. Elle abstrait le travail avec les API REST de différents fournisseurs de SMS (par exemple, Twilio, Vonage, SMS-Center) et fournit une interface unifiée pour l'envoi de messages. Principaux avantages :
- Asynchrone — toutes les requêtes sont exécutées via les coroutines Kotlin.
- Sécurité des types — typage strict des paramètres de requêtes et de réponses.
- Modularité — prise en charge de plusieurs fournisseurs via une interface unique
SmsSender. - Configuration facile — nombre minimal de dépendances.
Installation et connexion
Pour ajouter la bibliothèque à votre projet, utilisez Gradle. Ajoutez la dépendance dans le fichier build.gradle.kts :
dependencies { implementation("com.github.sms-client:sms-client-kotlin:1.2.0") implementation("io.ktor:ktor-client-core:2.3.0") implementation("io.ktor:ktor-client-cio:2.3.0") // ou un autre moteur}Après la synchronisation du projet, vous pouvez créer une instance du client. Exemple d'initialisation pour le fournisseur Twilio :
import sms.client.SmsClientimport sms.client.provider.twilio.TwilioConfig
fun main() { val config = TwilioConfig( accountSid = "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", authToken = "your_auth_token_here", fromNumber = "+1234567890" )
val client = SmsClient.create(config)}Méthodes principales de l'API
La bibliothèque fournit plusieurs méthodes clés pour l'envoi et la gestion des SMS :
1. Envoi d'un seul message
La méthode sendSms prend le numéro du destinataire et le texte du message. Elle retourne un objet SmsResult avec des informations sur l'envoi.
suspend fun sendSingleMessage(client: SmsClient) { val result = client.sendSms( to = "+79876543210", message = "Bonjour ! Ceci est un message de test depuis Kotlin." )
when (result) { is SmsResult.Success -> println("Envoyé ! ID : ${result.messageId}") is SmsResult.Failure -> println("Erreur : ${result.errorMessage}") }}2. Envoi par lots
Pour les envois en masse, utilisez la méthode sendBatch. Elle prend une liste de destinataires et un texte commun (ou des messages individuels).
suspend fun sendBatch(client: SmsClient) { val recipients = listOf( BatchRecipient("+79111111111", "Réduction de 10% sur votre première commande !"), BatchRecipient("+79222222222", "Votre code de confirmation : 1234") )
val batchResult = client.sendBatch(recipients) println("Envoyés avec succès : ${batchResult.successCount}, erreurs : ${batchResult.failureCount}")}3. Vérification du statut de livraison
La méthode getDeliveryStatus permet d'obtenir le statut actuel d'un message précédemment envoyé via son identifiant.
suspend fun checkStatus(client: SmsClient, messageId: String) { val status = client.getDeliveryStatus(messageId) println("Statut du message $messageId : ${status.status} (${status.description})")}Gestion des erreurs et exceptions
La bibliothèque utilise les mécanismes standard de Kotlin pour la gestion des erreurs. Toutes les erreurs réseau
Aussi dans la bibliothèque
Intégration des métriques Prometheus dans les applications C++ : la bibliothèque prometheus-cpp
Travail avec les images en PHP : aperçu des bibliothèques et outils
Travailler avec XML en Go (Golang) : le package encoding/xml et ses alternatives
Axios pour JavaScript (Node.js) : guide complet avec exemples