Come inoltrare SMS a un endpoint API webhook?

Guida 6 min di lettura
Copia link Condividi

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.

Icona Forward SMS

Forward SMS

Inoltro automatico di SMS verso Email, Slack, Teams e Discord

Scarica su App Store