Come inoltrare SMS a un endpoint API webhook?
Risposta Rapida: Forward SMS può inviare i tuoi messaggi di testo a qualsiasi endpoint HTTP come webhook JSON. Crea una destinazione Webhook nell'app, inserisci l'URL del tuo endpoint e configura un'automazione Comandi Rapidi. Il tuo endpoint riceverà una richiesta POST con il contenuto del messaggio, mittente e timestamp.
Cos'è l'Inoltro SMS tramite Webhook?
L'inoltro SMS tramite webhook invia automaticamente i tuoi messaggi di testo a qualsiasi endpoint HTTP che controlli. A differenza delle integrazioni specifiche per piattaforma (Slack, Discord, Teams), i webhook ti danno il controllo completo su come vengono elaborati i messaggi. Questo è ideale per gli sviluppatori che creano integrazioni personalizzate, sistemi di registrazione o workflow di automazione.
Quando arriva un messaggio, Forward SMS invia una richiesta POST al tuo endpoint con un payload JSON strutturato contenente il contenuto del messaggio, le informazioni del mittente e i metadati.
Perché Usare i Webhook
I webhook offrono flessibilità che le integrazioni preconfigurate non possono eguagliare:
- Automazione personalizzata: Attiva qualsiasi workflow quando ricevi un SMS - aggiorna database, invia notifiche, esegui script o integra con qualsiasi servizio
- Registrazione dati: Memorizza tutti i messaggi in arrivo nel tuo database per conformità, analisi o backup
- Routing multi-servizio: Elabora i messaggi con la tua logica per instradarli verso diverse destinazioni in base al contenuto o al mittente
- Strumenti interni: Integra funzionalità basate su SMS nei tuoi dashboard e strumenti interni
- Integrazione IoT: Collega gli avvisi SMS ai tuoi sistemi IoT, domotica o infrastruttura di monitoraggio
Formato del Payload Webhook
Quando un messaggio viene inoltrato, il tuo endpoint riceve una richiesta POST con il seguente payload JSON:
{
"timestamp": "2025-01-31T14:30:00Z",
"content": "Your verification code is 123456",
"sender": "+1234567890",
"contact": "Bank of Example"
}
Campi del Payload
| Campo | Tipo | Descrizione |
|-------|------|-------------|
| timestamp | string | Timestamp in formato ISO 8601 di quando il messaggio è stato inoltrato |
| content | string | Il contenuto del messaggio di testo |
| sender | string | Numero di telefono del mittente (se disponibile) |
| contact | string | Nome del contatto dalla tua rubrica (se abbinato) |
Configurazione dell'Inoltro Webhook
Passo 1: Scarica Forward SMS
Scarica Forward SMS dall'App Store.
Passo 2: Crea una Destinazione Webhook
Apri l'app, tocca "Aggiungi Destinazione" e seleziona "Webhook". Inserisci l'URL del tuo endpoint. L'URL deve essere HTTPS per sicurezza.
Passo 3: Testa il Tuo Endpoint
Usa il pulsante "Invia messaggio di prova" per verificare che il tuo endpoint riceva correttamente il webhook. Controlla i log del tuo server per confermare che il payload sia arrivato.
Passo 4: Configura l'Automazione Comandi Rapidi
Segui la nostra guida alla configurazione di Comandi Rapidi per creare l'automazione che attiva l'inoltro dei messaggi.
Esempi di Implementazione
Ecco esempi per gestire il webhook in vari linguaggi:
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
Considerazioni sulla Sicurezza
Usa HTTPS
Usa sempre endpoint HTTPS per crittografare il payload webhook in transito. Forward SMS richiede HTTPS per gli URL webhook.
Gestisci gli Errori con Eleganza
Il tuo endpoint dovrebbe restituire un codice di stato 2xx per confermare la ricezione. Se Forward SMS riceve una risposta di errore, registrerà il fallimento.
Risoluzione dei Problemi
Il Webhook Non Riceve Messaggi
- Controlla l'URL: Assicurati che l'URL del tuo endpoint sia corretto e accessibile da internet
- Verifica HTTPS: L'URL deve usare HTTPS, non HTTP
- Controlla le regole del firewall: Il tuo server deve accettare richieste POST in entrata
- Testa l'endpoint: Usa il pulsante di test nell'app per verificare la connettività
I Messaggi Arrivano Lentamente
- Controlla l'automazione Comandi Rapidi: Assicurati che l'automazione venga eseguita senza richiedere conferma
- Aggiornamento app in background: Abilita questo per Forward SMS nelle Impostazioni iOS
- Problemi di rete: Sia il tuo iPhone che il server necessitano di connessioni internet stabili
Il Payload Non Viene Analizzato
- Content-Type: La richiesta usa
Content-Type: application/json - Parsing JSON: Assicurati che il tuo server analizzi correttamente il body JSON
- Codifica caratteri: I messaggi sono codificati in UTF-8
FAQ
Posso inoltrare a più endpoint webhook?
Sì, crea più destinazioni Webhook in Forward SMS. Ogni destinazione può avere un URL endpoint diverso, e tutte riceveranno i messaggi inoltrati.
Cosa succede se il mio endpoint è offline?
Se il tuo endpoint restituisce un errore o non è raggiungibile, l'inoltro del messaggio fallirà. L'app registra questi fallimenti per il debug. Considera l'implementazione di un sistema di fallback o monitoraggio.
C'è un limite di velocità sui webhook?
Non c'è un limite di velocità artificiale da Forward SMS. I messaggi vengono inoltrati non appena arrivano e il tuo endpoint può elaborarli.
Posso filtrare quali messaggi vengono inoltrati?
Attualmente, tutti i messaggi che attivano l'automazione Comandi Rapidi vengono inoltrati. Puoi implementare la logica di filtraggio nel tuo endpoint webhook per ignorare i messaggi indesiderati.
Posso usare HTTP invece di HTTPS?
No, per motivi di sicurezza Forward SMS richiede endpoint HTTPS. Questo garantisce che i dati dei tuoi messaggi siano crittografati in transito.