Envio de SMS em Kotlin: API da biblioteca sms-client-kotlin

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Envio de SMS em Kotlin: API da biblioteca sms-client-kotlin



Aplicativos móveis modernos e soluções de servidor frequentemente exigem integração com gateways SMS para enviar notificações, confirmações ou mensagens de marketing. Para a linguagem Kotlin, existe a prática biblioteca sms-client-kotlin, que fornece uma API simples e type-safe para trabalhar com provedores SMS populares. Neste artigo, analisaremos detalhadamente sua arquitetura, métodos e exemplos de uso.



O que é sms-client-kotlin?



A biblioteca sms-client-kotlin é um cliente HTTP leve, escrito em Kotlin puro usando corrotinas. Ela abstrai o trabalho com as APIs REST de vários provedores SMS (por exemplo, Twilio, Vonage, SMS-Center) e fornece uma interface unificada para envio de mensagens. Principais vantagens:



  • Assincronicidade — todas as requisições são executadas através de corrotinas Kotlin.
  • Type-safety — tipagem estrita dos parâmetros de requisições e respostas.
  • Modularidade — suporte a vários provedores através da interface unificada SmsSender.
  • Configuração fácil — quantidade mínima de dependências.


Instalação e configuração



Para adicionar a biblioteca ao seu projeto, use o Gradle. Adicione a dependência no arquivo 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 outro motor}


Após sincronizar o projeto, você pode criar uma instância do cliente. Exemplo de inicialização para o provedor 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)}


Principais métodos da API



A biblioteca fornece vários métodos-chave para envio e gerenciamento de SMS:



1. Envio de uma única mensagem



O método sendSms recebe o número do destinatário e o texto da mensagem. Retorna um objeto SmsResult com informações sobre o envio.



suspend fun sendSingleMessage(client: SmsClient) {    val result = client.sendSms(        to = "+79876543210",        message = "Olá! Esta é uma mensagem de teste do Kotlin."    )

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


2. Envio em lote



Para envios em massa, use o método sendBatch. Ele recebe uma lista de destinatários e um texto comum (ou mensagens individuais).



suspend fun sendBatch(client: SmsClient) {    val recipients = listOf(        BatchRecipient("+79111111111", "10% de desconto no primeiro pedido!"),        BatchRecipient("+79222222222", "Seu código de confirmação: 1234")    )

val batchResult = client.sendBatch(recipients) println("Enviados com sucesso: ${batchResult.successCount}, erros: ${batchResult.failureCount}")}


3. Verificação do status de entrega



O método getDeliveryStatus permite obter o status atual de uma mensagem enviada anteriormente, usando seu identificador.



suspend fun checkStatus(client: SmsClient, messageId: String) {    val status = client.getDeliveryStatus(messageId)    println("Status da mensagem $messageId: ${status.status} (${status.description})")}


Tratamento de erros e exceções



A biblioteca usa os mecanismos padrão do Kotlin para tratamento de erros. Todos os erros de rede

Recommendations