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

Guide 6 min de lecture
Copier le lien Partager

Réponse Rapide : Forward SMS peut envoyer vos messages texte à 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 total sur la façon dont les messages sont traités. C'est idéal pour les développeurs qui créent des intégrations personnalisées, des systèmes de journalisation ou des workflows d'automatisation.

Lorsqu'un message arrive, Forward SMS envoie une requête POST à votre endpoint avec une charge JSON structurée 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 égaler :

  • Automatisation personnalisée : Déclenchez n'importe quel workflow 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'analyse ou la sauvegarde
  • Routage multi-services : Traitez les messages avec votre propre logique pour les router vers différentes destinations selon le contenu ou l'expéditeur
  • Outils internes : Intégrez des fonctionnalités basées sur 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 de la Charge Webhook

Lorsqu'un message est transféré, votre endpoint reçoit une requête POST avec la charge JSON suivante :

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

Champs de la Charge

| Champ | Type | Description | |-------|------|-------------| | timestamp | string | Horodatage au format ISO 8601 indiquant quand le message a été transféré | | content | string | Le 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 correspondance) |

Configuration du Transfert par Webhook

Étape 1 : Télécharger Forward SMS

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

Étape 2 : Créer une Destination Webhook

Ouvrez l'application, appuyez sur "Ajouter une destination" et sélectionnez "Webhook". Entrez l'URL de votre endpoint. L'URL doit être HTTPS pour des raisons de sécurité.

Étape 3 : Tester Votre Endpoint

Utilisez le bouton "Envoyer un message test" pour vérifier que votre endpoint reçoit correctement le webhook. Vérifiez les journaux de votre serveur pour confirmer que la charge est arrivée.

Étape 4 : Configurer l'Automatisation Raccourcis

Suivez notre guide de configuration Raccourcis pour créer l'automatisation qui déclenche le transfert de 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é

Utiliser HTTPS

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

Gérer les Erreurs avec Élégance

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 enregistré.

Dépannage

Le Webhook Ne Reçoit Pas de Messages

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

Les Messages Arrivent Lentement

  • Vérifier l'automatisation Raccourcis : Assurez-vous que l'automatisation s'exécute sans demander de confirmation
  • Actualisation en arrière-plan : Activez ceci pour Forward SMS dans les Réglages iOS
  • Problèmes de réseau : Votre iPhone et votre serveur ont tous deux besoin de connexions internet stables

La Charge N'est Pas Analysée

  • 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 en panne ?

Si votre endpoint retourne une erreur ou n'est pas accessible, le transfert du message échouera. L'application enregistre 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 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 indésirables.

Puis-je utiliser HTTP au lieu de HTTPS ?

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

Icône Forward SMS

Forward SMS

Transférez automatiquement vos SMS vers Email, Slack, Teams et Discord

Télécharger sur l'App Store