Jak przekazywać SMS-y do punktu końcowego webhook API?

Przewodnik 5 min czytania
Kopiuj link Udostępnij

Szybka odpowiedź: Forward SMS może wysyłać Twoje wiadomości tekstowe do dowolnego punktu końcowego HTTP jako webhook JSON. Utwórz miejsce docelowe Webhook w aplikacji, wprowadź adres URL punktu końcowego i skonfiguruj automatyzację Shortcuts. Twój punkt końcowy otrzyma żądanie POST z treścią wiadomości, nadawcą i znacznikiem czasu.

Czym jest Przekazywanie SMS przez Webhook?

Przekazywanie SMS przez webhook automatycznie wysyła Twoje wiadomości tekstowe do dowolnego kontrolowanego przez Ciebie punktu końcowego HTTP. W przeciwieństwie do integracji specyficznych dla platform (Slack, Discord, Teams), webhooki dają Ci pełną kontrolę nad sposobem przetwarzania wiadomości. Jest to idealne rozwiązanie dla programistów tworzących niestandardowe integracje, systemy logowania lub przepływy automatyzacji.

Gdy wiadomość przychodzi, Forward SMS wysyła żądanie POST do Twojego punktu końcowego ze strukturalnym ładunkiem JSON zawierającym treść wiadomości, informacje o nadawcy i metadane.

Dlaczego Warto Używać Webhooków

Webhooki oferują elastyczność, której gotowe integracje nie mogą zapewnić:

  • Niestandardowa automatyzacja: Uruchamiaj dowolny przepływ pracy po otrzymaniu SMS-a - aktualizuj bazy danych, wysyłaj powiadomienia, uruchamiaj skrypty lub integruj z dowolną usługą
  • Rejestrowanie danych: Przechowuj wszystkie przychodzące wiadomości we własnej bazie danych w celach zgodności, analityki lub kopii zapasowej
  • Routing wielousługowy: Przetwarzaj wiadomości własną logiką, aby kierować je do różnych miejsc docelowych na podstawie treści lub nadawcy
  • Narzędzia wewnętrzne: Buduj funkcje oparte na SMS-ach w swoich wewnętrznych pulpitach nawigacyjnych i narzędziach
  • Integracja IoT: Połącz alerty SMS z systemami IoT, automatyką domową lub infrastrukturą monitoringu

Format Payload Webhooka

Gdy wiadomość jest przekazywana, Twój punkt końcowy otrzymuje żądanie POST z następującym ładunkiem JSON:

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

Pola Payload

| Pole | Typ | Opis | |------|-----|------| | timestamp | string | Znacznik czasu w formacie ISO 8601 określający moment przekazania wiadomości | | content | string | Treść wiadomości tekstowej | | sender | string | Numer telefonu nadawcy (jeśli dostępny) | | contact | string | Nazwa kontaktu z Twojej książki adresowej (jeśli dopasowano) |

Konfiguracja Przekazywania przez Webhook

Krok 1: Pobierz Forward SMS

Pobierz Forward SMS z App Store.

Krok 2: Utwórz Miejsce Docelowe Webhook

Otwórz aplikację, dotknij "Dodaj miejsce docelowe" i wybierz "Webhook". Wprowadź adres URL punktu końcowego. Adres URL musi używać HTTPS ze względów bezpieczeństwa.

Krok 3: Przetestuj Swój Punkt Końcowy

Użyj przycisku "Wyślij wiadomość testową", aby zweryfikować, czy Twój punkt końcowy poprawnie odbiera webhook. Sprawdź logi serwera, aby potwierdzić, że payload dotarł.

Krok 4: Skonfiguruj Automatyzację Shortcuts

Postępuj zgodnie z naszym przewodnikiem konfiguracji Shortcuts, aby utworzyć automatyzację uruchamiającą przekazywanie wiadomości.

Przykłady Implementacji

Oto przykłady obsługi webhooka w różnych językach:

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

Zagadnienia Bezpieczeństwa

Używaj HTTPS

Zawsze używaj punktów końcowych HTTPS, aby szyfrować payload webhooka podczas transmisji. Forward SMS wymaga HTTPS dla adresów URL webhooków.

Obsługuj Błędy Elegancko

Twój punkt końcowy powinien zwracać kod statusu 2xx, aby potwierdzić odbiór. Jeśli Forward SMS otrzyma odpowiedź z błędem, zapisze niepowodzenie w logach.

Rozwiązywanie Problemów

Webhook Nie Odbiera Wiadomości

  • Sprawdź URL: Upewnij się, że adres URL punktu końcowego jest poprawny i dostępny z internetu
  • Zweryfikuj HTTPS: URL musi używać HTTPS, nie HTTP
  • Sprawdź reguły zapory: Twój serwer musi akceptować przychodzące żądania POST
  • Przetestuj punkt końcowy: Użyj przycisku testowego w aplikacji, aby zweryfikować łączność

Wiadomości Docierają Powoli

  • Sprawdź automatyzację Shortcuts: Upewnij się, że automatyzacja działa bez wymagania potwierdzenia
  • Odświeżanie aplikacji w tle: Włącz to dla Forward SMS w ustawieniach iOS
  • Problemy z siecią: Zarówno Twój iPhone, jak i serwer potrzebują stabilnych połączeń internetowych

Payload Nie Jest Parsowany

  • Content-Type: Żądanie używa Content-Type: application/json
  • Parsowanie JSON: Upewnij się, że Twój serwer poprawnie parsuje ciało JSON
  • Kodowanie znaków: Wiadomości są zakodowane w UTF-8

Często Zadawane Pytania

Czy mogę przekazywać do wielu punktów końcowych webhook?

Tak, utwórz wiele miejsc docelowych Webhook w Forward SMS. Każde miejsce docelowe może mieć inny adres URL punktu końcowego, a wszystkie będą otrzymywać przekazywane wiadomości.

Co się stanie, jeśli mój punkt końcowy jest niedostępny?

Jeśli Twój punkt końcowy zwróci błąd lub jest nieosiągalny, przekazywanie wiadomości nie powiedzie się. Aplikacja rejestruje te niepowodzenia do debugowania. Rozważ wdrożenie mechanizmu awaryjnego lub systemu monitoringu.

Czy istnieje limit szybkości dla webhooków?

Nie ma sztucznego limitu szybkości ze strony Forward SMS. Wiadomości są przekazywane tak szybko, jak przychodzą i Twój punkt końcowy może je przetwarzać.

Czy mogę filtrować, które wiadomości są przekazywane?

Obecnie wszystkie wiadomości, które uruchamiają automatyzację Shortcuts, są przekazywane. Możesz zaimplementować logikę filtrowania w swoim punkcie końcowym webhook, aby ignorować niechciane wiadomości.

Czy mogę używać HTTP zamiast HTTPS?

Nie, ze względów bezpieczeństwa Forward SMS wymaga punktów końcowych HTTPS. Zapewnia to, że Twoje dane wiadomości są szyfrowane podczas transmisji.

Ikona Forward SMS

Forward SMS

Automatyczne przekazywanie SMS-ów na e-mail, Slack, Teams i Discord

Pobierz w App Store