Comment transférer les SMS vers un endpoint webhook API?

Guide 6 min de lecture
Copier le lien Partager

Réponse rapide : Forward SMS peut envoyer vos messages texte vers n'importe quel endpoint HTTP sous forme de webhook JSON. Créez une destination Webhook dans l'application, entrez l'URL de votre endpoint et configurez une automatisation Raccourcis. Votre endpoint recevra une requête POST avec le contenu du message, l'expéditeur et l'horodatage.

Qu'est-ce que le transfert SMS par Webhook?

Le transfert SMS par Webhook envoie automatiquement vos messages texte vers n'importe quel endpoint HTTP que vous contrôlez. Contrairement aux intégrations spécifiques aux plateformes (Slack, Discord, Teams), les webhooks vous donnent un contrôle complet sur le traitement des messages. C'est idéal pour les développeurs qui créent des intégrations personnalisées, des systèmes de journalisation ou des flux de travail automatisés.

Lorsqu'un message arrive, Forward SMS envoie une requête POST à votre endpoint avec un payload JSON structuré contenant le contenu du message, les informations de l'expéditeur et les métadonnées.

Pourquoi utiliser les Webhooks

Les webhooks offrent une flexibilité que les intégrations préconstruites ne peuvent pas égaler :

  • Automatisation personnalisée : Déclenchez n'importe quel flux de travail lorsque vous recevez un SMS - mettez à jour des bases de données, envoyez des notifications, exécutez des scripts ou intégrez avec n'importe quel service
  • Journalisation des données : Stockez tous les messages entrants dans votre propre base de données pour la conformité, l'analytique ou la sauvegarde
  • Routage multi-services : Traitez les messages avec votre propre logique pour les acheminer vers différentes destinations selon le contenu ou l'expéditeur
  • Outils internes : Intégrez des fonctionnalités SMS dans vos tableaux de bord et outils internes
  • Intégration IoT : Connectez les alertes SMS à vos systèmes IoT, domotique ou infrastructure de surveillance

Format du Payload Webhook

Lorsqu'un message est transféré, votre endpoint reçoit une requête POST avec le payload JSON suivant :

{
  "timestamp": "2025-01-31T14:30:00Z",
  "content": "Your verification code is 123456",
  "sender": "+1234567890",
  "contact": "Bank of Example"
}

Champs du Payload

| Champ | Type | Description | |-------|------|-------------| | timestamp | string | Horodatage au format ISO 8601 indiquant quand le message a été transféré | | content | string | Contenu du message texte | | sender | string | Numéro de téléphone de l'expéditeur (si disponible) | | contact | string | Nom du contact de votre carnet d'adresses (si trouvé) |

Configuration du transfert par Webhook

Étape 1 : Téléchargez Forward SMS

Téléchargez Forward SMS depuis l'App Store.

Étape 2 : Créez une destination Webhook

Ouvrez l'application, appuyez sur « Add Destination » et sélectionnez « Webhook ». Entrez l'URL de votre endpoint. L'URL doit être en HTTPS pour des raisons de sécurité.

Étape 3 : Testez votre Endpoint

Utilisez le bouton « Send test message » pour vérifier que votre endpoint reçoit correctement le webhook. Consultez les journaux de votre serveur pour confirmer que le payload est arrivé.

Étape 4 : Configurez l'automatisation Raccourcis

Suivez notre guide de configuration Raccourcis pour créer l'automatisation qui déclenche le transfert des messages.

Exemples d'implémentation

Voici des exemples pour gérer le webhook dans différents langages :

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

Considérations de sécurité

Utilisez HTTPS

Utilisez toujours des endpoints HTTPS pour chiffrer le payload webhook en transit. Forward SMS exige HTTPS pour les URLs de webhook.

Gérez les erreurs correctement

Votre endpoint doit retourner un code de statut 2xx pour confirmer la réception. Si Forward SMS reçoit une réponse d'erreur, l'échec sera journalisé.

Dépannage

Le Webhook ne reçoit pas de messages

  • Vérifiez l'URL : Assurez-vous que l'URL de votre endpoint est correcte et accessible depuis Internet
  • Vérifiez HTTPS : L'URL doit utiliser HTTPS, pas HTTP
  • Vérifiez les règles du pare-feu : Votre serveur doit accepter les requêtes POST entrantes
  • Testez l'endpoint : Utilisez le bouton de test dans l'application pour vérifier la connectivité

Les messages arrivent lentement

  • Vérifiez l'automatisation Raccourcis : Assurez-vous que l'automatisation s'exécute sans nécessiter de confirmation
  • Actualisation en arrière-plan : Activez cette option pour Forward SMS dans les Réglages iOS
  • Problèmes réseau : Votre iPhone et votre serveur ont besoin de connexions Internet stables

Le Payload ne peut pas être analysé

  • Content-Type : La requête utilise Content-Type: application/json
  • Analyse JSON : Assurez-vous que votre serveur analyse correctement le corps JSON
  • Encodage des caractères : Les messages sont encodés en UTF-8

FAQ

Puis-je transférer vers plusieurs endpoints webhook?

Oui, créez plusieurs destinations Webhook dans Forward SMS. Chaque destination peut avoir une URL d'endpoint différente, et toutes recevront les messages transférés.

Que se passe-t-il si mon endpoint est hors service?

Si votre endpoint retourne une erreur ou est inaccessible, le transfert du message échouera. L'application journalise ces échecs pour le débogage. Envisagez d'implémenter un système de secours ou de surveillance.

Y a-t-il une limite de débit sur les webhooks?

Il n'y a pas de limite de débit artificielle de la part de Forward SMS. Les messages sont transférés aussi rapidement qu'ils arrivent et que votre endpoint peut les traiter.

Puis-je filtrer quels messages sont transférés?

Actuellement, tous les messages qui déclenchent l'automatisation Raccourcis sont transférés. Vous pouvez implémenter une logique de filtrage dans votre endpoint webhook pour ignorer les messages non désirés.

Puis-je utiliser HTTP au lieu de HTTPS?

Non, pour des raisons de sécurité, Forward SMS exige des endpoints HTTPS. Cela garantit que vos données de messages sont chiffrées en transit.

Icône Forward SMS

Forward SMS

Transférez automatiquement vos messages texte vers Courriel, Slack, Teams et Discord

Télécharger sur l'App Store