Envio de SMS em PHP: Visão Geral das Bibliotecas de API para Integração

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 PHP: Visão Geral das Bibliotecas de API e Exemplos de Integração

O envio de mensagens SMS continua sendo uma função essencial para aplicações web: autenticação de dois fatores, notificações de pedidos, campanhas de marketing. Em PHP, essa tarefa é resolvida através da API de serviços terceiros. Neste artigo, analisaremos bibliotecas populares, formas de instalá-las e forneceremos exemplos práticos de código.



1. Serviços Populares e suas Bibliotecas PHP

A escolha do provedor depende da região, preço e requisitos de entrega. Vamos considerar três opções:

  • Twilio — líder internacional, fornece SDK para PHP (twilio/sdk). Adequado para projetos globais.
  • SMS Aero — serviço russo com API REST simples e biblioteca PHP oficial.
  • smsc.ru — outro serviço nacional popular com tarifas baixas e scripts prontos.


2. Instalação via Composer

A maioria das bibliotecas modernas é instalada via Composer. Exemplo para Twilio:

composer require twilio/sdk

Para SMS Aero, use:

composer require smsaero/smsaero-php

Se você usar smsc.ru, pode dispensar o Composer — basta copiar a classe PHP deles do GitHub.



3. Exemplo de Envio de SMS via Twilio

A biblioteca Twilio requer Account SID e Auth Token, que você obtém no painel de controle.

<?phprequire_once 'vendor/autoload.php';

use Twilio\\Rest\\Client;

// Seus dados$sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";$token = "your_auth_token";$twilio = new Client($sid, $token);

// Envio de SMS$message = $twilio->messages ->create( "+71234567890", // número do destinatário [ "from" => "+15017122661", // número do remetente (comprado no Twilio) "body" => "Olá! Este é um SMS de teste do Twilio." ] );

echo "Mensagem enviada! SID: " . $message->sid;?>


4. Envio de SMS via SMS Aero (REST API)

SMS Aero usa chave de API e login. A biblioteca fornece uma interface conveniente:

<?phprequire_once 'vendor/autoload.php';

use Smsaero\\Smsaero;

$client = new Smsaero('your_email@example.com', 'your_api_key');

// Envio de mensagem$response = $client->send('71234567890', 'Mensagem de teste do SMS Aero');

if ($response->success) { echo "SMS enviado. ID: " . $response->id;} else { echo "Erro: " . $response->error;}?>


5. Trabalhando com smsc.ru (sem Composer)

Para smsc.ru, você pode usar requisições HTTP diretas ou a classe pronta deles. Exemplo simples via cURL:

<?php$login = "your_login";$password = "your_password";$phones = "71234567890";$message = "Olá do smsc.ru!";

$url = "https://smsc.ru/sys/send.php?login=" . urlencode($login) . "&psw=" . urlencode($password) . "&phones=" . urlencode($phones) . "&mes=" . urlencode($message) . "&fmt=3"; // fmt=3 — resposta em JSON

$ch = curl_init($url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$response = curl_exec($ch);curl_close($ch);

$data = json_decode($response, true);if ($data['error'] ?? false) { echo "Erro: " . $data['error'];} else { echo "SMS enviado. ID: " . $data['id'];}?>


6. Tratamento de Erros e Logging

Ao enviar SMS, é importante tratar os erros corretamente. Problemas típicos:

  • Credenciais inválidas (401 Unauthorized).
  • Saldo insuficiente.
  • Número na lista negra.
  • Exceder limites de envio.

Exemplo de tratamento de exceções para Twilio:

<?phptry {    $message = $twilio->messages->create(...);    // logging de sucesso    error_log("SMS enviado: " . $message-&g                    

Recommendations