Como encaminhar SMS para um endpoint de API webhook?
Resposta Rápida: Forward SMS pode enviar suas mensagens de texto para qualquer endpoint HTTP como um webhook JSON. Crie um destino Webhook no app, insira a URL do seu endpoint e configure uma automação de Atalhos. Seu endpoint receberá uma requisição POST com o conteúdo da mensagem, remetente e timestamp.
O Que é Encaminhamento de SMS por Webhook?
Encaminhamento de SMS por webhook envia automaticamente suas mensagens de texto para qualquer endpoint HTTP que você controla. Diferente de integrações específicas de plataforma (Slack, Discord, Teams), webhooks dão a você controle total sobre como as mensagens são processadas. Isso é ideal para desenvolvedores que criam integrações personalizadas, sistemas de registro ou workflows de automação.
Quando uma mensagem chega, Forward SMS envia uma requisição POST para seu endpoint com um payload JSON estruturado contendo o conteúdo da mensagem, informações do remetente e metadados.
Por Que Usar Webhooks
Webhooks oferecem flexibilidade que integrações pré-construídas não conseguem igualar:
- Automação personalizada: Acione qualquer workflow quando você receber um SMS - atualize bancos de dados, envie notificações, execute scripts ou integre com qualquer serviço
- Registro de dados: Armazene todas as mensagens recebidas em seu próprio banco de dados para conformidade, análise ou backup
- Roteamento multi-serviço: Processe mensagens com sua própria lógica para roteá-las para diferentes destinos com base no conteúdo ou remetente
- Ferramentas internas: Integre recursos baseados em SMS em seus painéis e ferramentas internas
- Integração IoT: Conecte alertas SMS aos seus sistemas IoT, automação residencial ou infraestrutura de monitoramento
Formato do Payload do Webhook
Quando uma mensagem é encaminhada, seu endpoint recebe uma requisição POST com o seguinte payload JSON:
{
"timestamp": "2025-01-31T14:30:00Z",
"content": "Your verification code is 123456",
"sender": "+1234567890",
"contact": "Bank of Example"
}
Campos do Payload
| Campo | Tipo | Descrição |
|-------|------|-----------|
| timestamp | string | Timestamp formatado em ISO 8601 de quando a mensagem foi encaminhada |
| content | string | O conteúdo da mensagem de texto |
| sender | string | Número de telefone do remetente (se disponível) |
| contact | string | Nome do contato da sua agenda (se correspondente) |
Configurando o Encaminhamento por Webhook
Passo 1: Baixar Forward SMS
Baixe Forward SMS na App Store.
Passo 2: Criar um Destino Webhook
Abra o app, toque em "Adicionar Destino" e selecione "Webhook". Insira a URL do seu endpoint. A URL deve ser HTTPS por segurança.
Passo 3: Testar Seu Endpoint
Use o botão "Enviar mensagem de teste" para verificar se seu endpoint recebe o webhook corretamente. Verifique os logs do seu servidor para confirmar que o payload chegou.
Passo 4: Configurar Automação de Atalhos
Siga nosso guia de configuração de Atalhos para criar a automação que aciona o encaminhamento de mensagens.
Exemplos de Implementação
Aqui estão exemplos para lidar com o webhook em várias linguagens:
Node.js (Express)
const express = require('express');
const app = express();
app.use(express.json());
app.post('/webhook/sms', (req, res) => {
const { timestamp, content, sender, contact } = req.body;
console.log(`Received SMS from ${sender}: ${content}`);
// Process the message (save to database, trigger automation, etc.)
res.status(200).json({ received: true });
});
app.listen(3000);
Python (Flask)
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/webhook/sms', methods=['POST'])
def handle_sms():
data = request.json
sender = data['sender']
content = data['content']
print(f"Received SMS from {sender}: {content}")
# Process the message
return jsonify({'received': True}), 200
if __name__ == '__main__':
app.run(port=3000)
PHP
<?php
$payload = json_decode(file_get_contents('php://input'), true);
$sender = $payload['sender'];
$content = $payload['content'];
$timestamp = $payload['timestamp'];
error_log("Received SMS from $sender: $content");
// Process the message
http_response_code(200);
echo json_encode(['received' => true]);
?>
Ruby (Sinatra)
require 'sinatra'
require 'json'
post '/webhook/sms' do
payload = JSON.parse(request.body.read)
sender = payload['sender']
content = payload['content']
puts "Received SMS from #{sender}: #{content}"
# Process the message
content_type :json
{ received: true }.to_json
end
Considerações de Segurança
Use HTTPS
Sempre use endpoints HTTPS para criptografar o payload do webhook em trânsito. Forward SMS requer HTTPS para URLs de webhook.
Trate Erros com Elegância
Seu endpoint deve retornar um código de status 2xx para confirmar o recebimento. Se Forward SMS receber uma resposta de erro, a falha será registrada.
Solução de Problemas
Webhook Não Recebe Mensagens
- Verifique a URL: Certifique-se de que a URL do seu endpoint está correta e acessível pela internet
- Verifique HTTPS: A URL deve usar HTTPS, não HTTP
- Verifique regras de firewall: Seu servidor deve aceitar requisições POST de entrada
- Teste o endpoint: Use o botão de teste no app para verificar a conectividade
Mensagens Chegando Devagar
- Verifique a automação de Atalhos: Certifique-se de que a automação executa sem exigir confirmação
- Atualização em segundo plano: Ative isso para Forward SMS nas Configurações do iOS
- Problemas de rede: Tanto seu iPhone quanto servidor precisam de conexões de internet estáveis
Payload Não Está Sendo Analisado
- Content-Type: A requisição usa
Content-Type: application/json - Parsing JSON: Certifique-se de que seu servidor analisa corretamente o corpo JSON
- Codificação de caracteres: As mensagens são codificadas em UTF-8
FAQ
Posso encaminhar para múltiplos endpoints webhook?
Sim, crie múltiplos destinos Webhook no Forward SMS. Cada destino pode ter uma URL de endpoint diferente, e todos receberão as mensagens encaminhadas.
O que acontece se meu endpoint estiver fora do ar?
Se seu endpoint retornar um erro ou estiver inacessível, o encaminhamento da mensagem falhará. O app registra essas falhas para depuração. Considere implementar um sistema de fallback ou monitoramento.
Existe um limite de taxa nos webhooks?
Não há limite de taxa artificial do Forward SMS. As mensagens são encaminhadas tão rápido quanto chegam e seu endpoint pode processá-las.
Posso filtrar quais mensagens são encaminhadas?
Atualmente, todas as mensagens que acionam a automação de Atalhos são encaminhadas. Você pode implementar lógica de filtragem no seu endpoint webhook para ignorar mensagens indesejadas.
Posso usar HTTP em vez de HTTPS?
Não, por razões de segurança Forward SMS requer endpoints HTTPS. Isso garante que os dados das suas mensagens estejam criptografados em trânsito.