Envío de SMS en Kotlin: API de la biblioteca sms-client-kotlin

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Envío de SMS en Kotlin: API de la biblioteca sms-client-kotlin



Las aplicaciones móviles modernas y las soluciones de servidor a menudo requieren integración con puertas de enlace SMS para enviar notificaciones, confirmaciones o mensajes de marketing. Para el lenguaje Kotlin, existe una práctica biblioteca sms-client-kotlin que proporciona una API simple y tipada para trabajar con proveedores SMS populares. En este artículo, analizaremos en detalle su arquitectura, métodos y ejemplos de uso.



¿Qué es sms-client-kotlin?



La biblioteca sms-client-kotlin es un cliente HTTP ligero escrito en Kotlin puro utilizando corrutinas. Abstrae el trabajo con las API REST de varios proveedores SMS (por ejemplo, Twilio, Vonage, SMS-Center) y proporciona una interfaz unificada para enviar mensajes. Las principales ventajas son:



  • Asincronía — todas las solicitudes se ejecutan a través de corrutinas de Kotlin.
  • Seguridad de tipos — tipado estricto de los parámetros de solicitudes y respuestas.
  • Modularidad — soporte para múltiples proveedores a través de la interfaz unificada SmsSender.
  • Configuración sencilla — cantidad mínima de dependencias.


Instalación y configuración



Para agregar la biblioteca a tu proyecto, usa Gradle. Añade la dependencia en el archivo 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") // u otro motor}


Después de sincronizar el proyecto, puedes crear una instancia del cliente. Ejemplo de inicialización para el proveedor 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étodos principales de la API



La biblioteca proporciona varios métodos clave para enviar y gestionar SMS:



1. Envío de un solo mensaje



El método sendSms recibe el número del destinatario y el texto del mensaje. Devuelve un objeto SmsResult con información sobre el envío.



suspend fun sendSingleMessage(client: SmsClient) {    val result = client.sendSms(        to = "+79876543210",        message = "¡Hola! Este es un mensaje de prueba desde Kotlin."    )

when (result) { is SmsResult.Success -> println("¡Enviado! ID: ${result.messageId}") is SmsResult.Failure -> println("Error: ${result.errorMessage}") }}


2. Envío por lotes



Para envíos masivos, usa el método sendBatch. Recibe una lista de destinatarios y un texto común (o mensajes individuales).



suspend fun sendBatch(client: SmsClient) {    val recipients = listOf(        BatchRecipient("+79111111111", "¡10% de descuento en tu primer pedido!"),        BatchRecipient("+79222222222", "Tu código de confirmación: 1234")    )

val batchResult = client.sendBatch(recipients) println("Enviados con éxito: ${batchResult.successCount}, errores: ${batchResult.failureCount}")}


3. Verificación del estado de entrega



El método getDeliveryStatus permite obtener el estado actual de un mensaje enviado anteriormente mediante su identificador.



suspend fun checkStatus(client: SmsClient, messageId: String) {    val status = client.getDeliveryStatus(messageId)    println("Estado del mensaje $messageId: ${status.status} (${status.description})")}


Manejo de errores y excepciones



La biblioteca utiliza los mecanismos estándar de Kotlin para el manejo de errores. Todos los errores de red

Recommendations