https://a.storyblok.com/f/270183/1368x665/3cccd1f4b5/26aug_dev-blog_sms-php_1368x665.jpg

Recebendo um SMS com PHP

Publicado em August 11, 2026

Tempo de leitura: 8 minutos

Introdução

Já abordamos anteriormente como enviar um SMS com PHP, mas isso é apenas metade da história. Neste post, vamos ver como permitir que as pessoas enviem SMS para você.

O código-fonte desta postagem do blog está disponível no GitHub.

Pré-requisitos

Você precisará ter o PHP instalado antes de seguir as instruções deste post. Estou usando o PHP 7.4, mas o código aqui deve funcionar no PHP 7.3 e versões posteriores. Você também precisará de o Composer para baixar nossas dependências.

Por fim, você precisará do CLI da Vonage instalada. Vamos usá-la para adquirir um número de telefone e configurar nosso Account da Vonage para que ele aponte para nosso novo aplicativo.

Recebendo um SMS com PHP

Quando a Vonage recebe um SMS destinado a um número de telefone de sua propriedade, ela envia uma solicitação HTTP para uma URL que você configurou, contendo todas as informações sobre o SMS. (Não se preocupe em configurar essa URL por enquanto; falaremos sobre isso um pouco mais adiante)

Para receber o conteúdo das mensagens SMS recebidas, vamos usar o framework Slim Vamos instalá-lo agora com composer:

composer require slim/slim:"4.*"

Quando recebermos um SMS, vamos registrar todas as informações que a Vonage fornecer ao console. Na prática, você poderia armazenar esses dados em um arquivo ou em um banco de dados.

A Vonage fará uma GET ou uma POST solicitação ao seu aplicativo com os dados, dependendo de como sua Account estiver configurada (você pode verificar isso em HTTP Method no painel). Nesta postagem, vamos criar uma aplicação capaz de lidar com ambos os métodos HTTP:

Crie um arquivo chamado index.php com o seguinte conteúdo. Inicializamos nosso Slim aplicativo, definimos um handler que retorna uma resposta HTTP 204 e, em seguida, instruímos o Slim a usar esse handler sempre que recebermos uma GET ou um POST para /webhooks/inbound-sms:

<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
use Slim\Factory\AppFactory;

require 'vendor/autoload.php';

$app = AppFactory::create();

$handler = function (Request $request, Response $response) {
    return $response->withStatus(204);
};

$app->map(['GET', 'POST'], '/webhooks/inbound-sms', $handler);

$app->run();

Com esse código, tudo o que estamos fazendo é retornar um 204 código de resposta, que indica que está tudo certo. Para registrar os parâmetros que recebemos, precisamos verificar se há algum dado retornado por \Vonage\SMS\Webhook\Factory::createFromRequest($request).

Neste momento, todos os parâmetros estão armazenados em uma variável chamada $sms e podemos exibi-los no terminal usando error_log('From: ' . $sms->getMsisdn() . ' message: ' . $sms->getText());. Juntando tudo isso, seu $hander deveria ficar assim:

$handler = function (Request $request, Response $response) {
    $sms = \Vonage\SMS\Webhook\Factory::createFromRequest($request);
    error_log('From: ' . $sms->getMsisdn() . ' message: ' . $sms->getText());

    return $response->withStatus(204);
};

Salve este arquivo e, em seguida, abra uma nova janela do terminal. Vamos iniciar o servidor PHP integrado e disponibilizar nosso aplicativo na porta 8000.

php -t . -S localhost:8000

Se você acessar http://localhost:8000/webhook/inbound-SMS?msisdn=14155550100&text=Hello+World, você deverá ver from e text no mesmo terminal em que você iniciou o servidor PHP.

É isso mesmo. Receber um SMS com o Vonage é muito fácil, pois eles convertem o SMS em uma solicitação HTTP para nós.

Como disponibilizar seu aplicativo com o ngrok

Embora nosso aplicativo esteja pronto, nosso trabalho ainda não está totalmente concluído. Para enviar uma solicitação HTTP ao nosso aplicativo, a Vonage precisa saber em qual URL ele está sendo executado.

Vamos usar o ngrok para disponibilizar nosso aplicativo local na internet. Execute ngrok http 8000 e anote a ngrok URL gerada (será algo parecido com http://abc123.ngrok.io).

Configure seu account da Vonage

Com a Vonage, cada número de telefone que você possui pode ter um URL de retorno de chamada diferente, para o qual são enviadas as mensagens SMS recebidas.

Vamos começar comprando um número de telefone usando o CLI da Vonage, que poderemos usar para fazer testes. Primeiro, escolha um número disponível para comprar:

vonage numbers:search US

E então compre:

vonage numbers:buy US

Agora, crie um novo aplicativo com a URL para a qual os SMS recebidos serão encaminhados:

vonage apps:create --messages_inbound_url=http://abc123.ngrok.io/webhooks/inbound-sms

Agora vamos vincular nosso número ao nosso aplicativo:

vonage apps:link --number=14155550100

Nesse momento, você pode enviar um SMS para o seu número da Vonage e ver como ele aparece no seu terminal. Pode demorar alguns minutos devido à latência da rede, mas deve chegar em breve!

Conclusão

Em apenas 20 linhas de código, passamos do zero à capacidade de receber mensagens SMS em nosso aplicativo.

A documentação para desenvolvedores traz mais informações sobre o recebimento de mensagens SMS com PHP, incluindo uma descrição de todos os parâmetros disponíveis que a Vonage pode enviar a você.

Se você tiver alguma dúvida sobre esta publicação, fique à vontade para participar do canal da comunidade da Vonage no Slack, onde teremos prazer em ajudar.

Compartilhar:

https://a.storyblok.com/f/270183/400x385/12b3020c69/james-seconde.png
James SecondePromotor Sênior de Desenvolvimento em PHP

Sou ator formado, com uma dissertação sobre stand-up comedy, e comecei a me dedicar ao desenvolvimento em PHP por meio dos encontros da comunidade. Você pode me encontrar dando palestras e escrevendo sobre tecnologia, ou ouvindo e comprando discos curiosos da minha coleção de vinil.