Envoi de SMS en Kotlin : bibliothèque API pour l'intégration

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Envoi de SMS en Kotlin : bibliothèque API pour une intégration rapide



Dans le développement web moderne, la possibilité d'envoyer des SMS par programmation reste une fonctionnalité recherchée — de l'authentification à deux facteurs aux notifications de statut de commande. Si vous utilisez Kotlin pour le backend (Ktor, Spring Boot) ou une application mobile (Android), vous aurez besoin d'un outil fiable pour travailler avec les fournisseurs de SMS. Dans cet article, nous examinerons la bibliothèque API pour l'envoi de SMS en Kotlin, ses fonctionnalités, des exemples d'intégration et les meilleures pratiques.



Qu'est-ce qu'une bibliothèque API pour l'envoi de SMS ?



Une bibliothèque API est un ensemble de classes et de fonctions qui abstrait le travail avec les requêtes HTTP vers le serveur du fournisseur de SMS. Au lieu de formater manuellement l'URL, les en-têtes et d'analyser le JSON, vous appelez des méthodes simples en Kotlin : sendSms(phone, message). La bibliothèque gère l'authentification, la sérialisation, les tentatives en cas d'erreurs réseau et le traitement des réponses.



Principales fonctionnalités de la bibliothèque



  • Envoi simple de SMS — indication du numéro du destinataire, du texte et éventuellement du nom de l'expéditeur (nom alpha).
  • Envoi groupé — envoi d'un même message à une liste de numéros.
  • Vérification du statut — obtention d'informations sur la livraison (livré, en attente, erreur).
  • Prise en charge de différents fournisseurs — Twilio, Vonage (Nexmo), SMSC.ru, Smsc.ua et autres.
  • Asynchronisme — toutes les méthodes retournent des fonctions suspend ou Deferred pour les coroutines.
  • Journalisation et gestion des erreurs — mécanismes intégrés pour le débogage.


Installation et configuration



La bibliothèque est distribuée via Maven Central ou JitPack. Ajoutez la dépendance dans build.gradle.kts :



// build.gradle.kts (pour Gradle Kotlin DSL)dependencies {    implementation("com.example:sms-api:1.0.0")    // si vous utilisez Ktor Client    implementation("io.ktor:ktor-client-core:2.3.0")    implementation("io.ktor:ktor-client-okhttp:2.3.0")}


Pour Android, ajoutez également l'autorisation Internet dans AndroidManifest.xml.



Exemple de base d'envoi de SMS



Considérons un exemple minimal d'envoi d'un seul message via le fournisseur SMSC.ru (similaire pour les autres).



import com.example.smsapi.SmsClientimport com.example.smsapi.model.SmsRequestimport com.example.smsapi.model.SmsResponse

suspend fun sendSingleSms() { // Création du client avec les identifiants val client = SmsClient.create( login = "your_login", password = "your_password", provider = SmsProvider.SMSC )

// Formation de la requête val request = SmsRequest( phone = "+71234567890", message = "Votre code de confirmation : 1234", sender = "MyApp" // nom alpha, si pris en charge )

// Envoi et réception de la réponse val response: SmsResponse = client.send(request)

when (response.status) { SmsStatus.SUCCESS -> println("SMS envoyé, ID : ${response.id}") SmsStatus.ERROR -> println("Erreur : ${response.errorMessage}") else -> println("Statut inconnu") }}


Envoi groupé



Pour envoyer un même message à plusieurs numéros, utilisez la méthode sendBatch :



val phones = listOf("+71234567890", "+70987654321", "+71112223344")val batchRequest = BatchSmsRequest(    phones = phones,    message = "Chers clients, la promotion est prolongée jusqu'à vendredi !",    sender = "ShopBot")

val batchResponse = client.sendBatch(batchRequest)batchResponse.results.forEach { result -> println("Téléphone : ${result.phone}, statut : ${result.status}")}


Traitement asynchrone avec les coroutines



La bibliothèque prend entièrement en charge les coroutines Kotlin. Toutes les méthodes d'envoi sont suspend et peuvent être appelées depuis un contexte de coroutine :

Recommendations