Envio de SMS em PHP: bibliotecas de API do sms.ru e outros serviços

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 de bibliotecas de API e soluções prontas



Em aplicações web modernas, o envio de mensagens SMS continua sendo uma função muito requisitada: confirmação de registro, autenticação de dois fatores, notificações sobre status de pedidos. Neste artigo, vamos analisar como implementar o envio de SMS em PHP usando bibliotecas de API e serviços populares. Abordaremos tanto SDKs oficiais quanto soluções leves em cURL.



1. Escolha do provedor de SMS e da biblioteca



Antes de começar, é necessário se registrar em um dos serviços de SMS e obter uma chave de API. Para PHP, existem várias opções testadas:



  • sms.ru – serviço russo popular com API simples e biblioteca oficial para PHP.
  • Twilio – gigante internacional com um poderoso SDK para PHP (twilio/sdk).
  • ClickSend – serviço versátil com suporte a REST API.
  • Classe cURL simples – se você não quiser incluir dependências externas.


2. Instalação de bibliotecas via Composer



Para trabalhar com Twilio ou ClickSend, o mais conveniente é usar o Composer. Exemplo de instalação:



composer require twilio/sdkcomposer require clicksend/clicksend-php


Para sms.ru, a biblioteca oficial também é instalada via Composer:



composer require smsru/smsru


Se você preferir não usar um gerenciador de dependências, pode baixar os arquivos PHP manualmente do GitHub ou escrever sua própria classe em cURL.



3. Exemplo de envio de SMS via sms.ru



O serviço sms.ru fornece uma API simples e clara. Abaixo está um exemplo de envio de mensagem usando a biblioteca oficial:



<?phprequire_once 'vendor/autoload.php';

use SMSRU\\SMSRU;

$sms = new SMSRU('SUA_CHAVE_API');

$data = new stdClass();$data->to = '79123456789'; // Número do destinatário$data->text = 'Mensagem de teste'; // Texto do SMS$data->from = 'MySite'; // Nome do remetente (assinatura)

$response = $sms->send_one($data);

if ($response->status == 'OK') { echo "Mensagem enviada. ID: " . $response->sms_id;} else { echo "Erro: " . $response->status_text;}?>


Importante: previamente, no painel de controle do sms.ru, é necessário registrar a assinatura do remetente e adicionar saldo.



4. Envio de SMS via Twilio SDK



Twilio é um dos serviços mais confiáveis para envio internacional. Exemplo de código em PHP:



<?phprequire_once 'vendor/autoload.php';

use Twilio\\Rest\\Client;

$account_sid = 'SEU_ACCOUNT_SID';$auth_token = 'SEU_AUTH_TOKEN';$twilio_number = '+1234567890'; // Número obtido no Twilio

$client = new Client($account_sid, $auth_token);

$message = $client->messages->create( '+79123456789', // Número do destinatário [ 'from' => $twilio_number, 'body' => 'Olá do Twilio e PHP!' ]);

echo "Enviado com ID: " . $message->sid;?>


Twilio suporta comunicação bidirecional, webhooks e verificação de status de entrega.



5. Implementação sem bibliotecas externas (cURL)



Se você não quiser usar o Composer, pode escrever uma função universal em cURL. Exemplo para sms.ru:



<?phpfunction sendSms($api_key, $phone, $message) {    $url = 'https://sms.ru/sms/send';    $params = [        'api_id' => $api_key,        'to' => $phone,        'msg' => $message,        'json' => 1    ];

$ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$response = curl_exec($ch); curl_close($ch);

return json_decode($response, true);}

$result = sendSms('

Recommendations