Jak přeposílat SMS na webhook API endpoint?
Rychlá odpověď: Forward SMS může odesílat vaše textové zprávy na libovolný HTTP endpoint jako JSON webhook. Vytvořte v aplikaci destinaci Webhook, zadejte URL vašeho endpointu a nastavte automatizaci Zkratky. Váš endpoint obdrží POST požadavek s obsahem zprávy, odesílatelem a časovým razítkem.
Co je přeposílání SMS přes webhook?
Přeposílání SMS přes webhook automaticky odesílá vaše textové zprávy na libovolný HTTP endpoint, který spravujete. Na rozdíl od integrací specifických pro konkrétní platformy (Slack, Discord, Teams) vám webhooky poskytují úplnou kontrolu nad zpracováním zpráv. To je ideální pro vývojáře vytvářející vlastní integrace, logovací systémy nebo automatizační workflow.
Když zpráva dorazí, Forward SMS odešle POST požadavek na váš endpoint se strukturovaným JSON payloadem obsahujícím obsah zprávy, informace o odesílateli a metadata.
Proč používat webhooky
Webhooky nabízejí flexibilitu, kterou předpřipravené integrace nemohou nabídnout:
- Vlastní automatizace: Spusťte jakýkoliv workflow při přijetí SMS - aktualizujte databáze, odesílejte notifikace, spouštějte skripty nebo integrujte s jakoukoliv službou
- Logování dat: Ukládejte všechny příchozí zprávy do vlastní databáze pro účely compliance, analýzy nebo zálohování
- Směrování na více služeb: Zpracovávejte zprávy vlastní logikou pro jejich směrování na různé destinace podle obsahu nebo odesílatele
- Interní nástroje: Vytvářejte funkce poháněné SMS do vašich interních dashboardů a nástrojů
- IoT integrace: Propojte SMS upozornění s vašimi IoT systémy, domácí automatizací nebo monitorovací infrastrukturou
Formát webhook payloadu
Když je zpráva přeposlána, váš endpoint obdrží POST požadavek s následujícím JSON payloadem:
{
"timestamp": "2025-01-31T14:30:00Z",
"content": "Your verification code is 123456",
"sender": "+1234567890",
"contact": "Bank of Example"
}
Pole payloadu
| Pole | Typ | Popis |
|------|-----|-------|
| timestamp | string | Časové razítko ve formátu ISO 8601, kdy byla zpráva přeposlána |
| content | string | Obsah textové zprávy |
| sender | string | Telefonní číslo odesílatele (pokud je k dispozici) |
| contact | string | Jméno kontaktu z vašeho adresáře (pokud bylo nalezeno) |
Nastavení přeposílání přes webhook
Krok 1: Stáhněte Forward SMS
Stáhněte Forward SMS z App Store.
Krok 2: Vytvořte destinaci Webhook
Otevřete aplikaci, klepněte na "Přidat destinaci" a vyberte "Webhook". Zadejte URL vašeho endpointu. URL musí být HTTPS z bezpečnostních důvodů.
Krok 3: Otestujte váš endpoint
Použijte tlačítko "Odeslat testovací zprávu" pro ověření, že váš endpoint správně přijímá webhook. Zkontrolujte logy vašeho serveru pro potvrzení, že payload dorazil.
Krok 4: Nastavte automatizaci Zkratky
Postupujte podle našeho průvodce nastavením Zkratek pro vytvoření automatizace, která spouští přeposílání zpráv.
Příklady implementace
Zde jsou příklady pro zpracování webhooku v různých jazycích:
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
Bezpečnostní aspekty
Používejte HTTPS
Vždy používejte HTTPS endpointy pro šifrování webhook payloadu při přenosu. Forward SMS vyžaduje HTTPS pro webhook URL.
Ošetřujte chyby elegantně
Váš endpoint by měl vrátit stavový kód 2xx pro potvrzení přijetí. Pokud Forward SMS obdrží chybovou odpověď, zaznamená selhání do logu.
Řešení problémů
Webhook nepřijímá zprávy
- Zkontrolujte URL: Ujistěte se, že URL vašeho endpointu je správná a dostupná z internetu
- Ověřte HTTPS: URL musí používat HTTPS, nikoliv HTTP
- Zkontrolujte pravidla firewallu: Váš server musí přijímat příchozí POST požadavky
- Otestujte endpoint: Použijte testovací tlačítko v aplikaci pro ověření konektivity
Zprávy přicházejí pomalu
- Zkontrolujte automatizaci Zkratek: Ujistěte se, že automatizace běží bez nutnosti potvrzení
- Obnova aplikací na pozadí: Povolte tuto funkci pro Forward SMS v Nastavení iOS
- Problémy se sítí: Váš iPhone i server potřebují stabilní internetové připojení
Payload se neparsuje
- Content-Type: Požadavek používá
Content-Type: application/json - JSON parsování: Ujistěte se, že váš server správně parsuje JSON tělo
- Kódování znaků: Zprávy jsou kódovány v UTF-8
Často kladené otázky
Mohu přeposílat na více webhook endpointů?
Ano, vytvořte v Forward SMS více destinací Webhook. Každá destinace může mít jinou URL endpointu a všechny budou přijímat přeposílané zprávy.
Co se stane, když je můj endpoint nedostupný?
Pokud váš endpoint vrátí chybu nebo je nedostupný, přeposílání zprávy selže. Aplikace zaznamenává tato selhání pro účely ladění. Zvažte implementaci záložního systému nebo monitoringu.
Existuje limit rychlosti pro webhooky?
Forward SMS nemá žádný umělý limit rychlosti. Zprávy jsou přeposílány tak rychle, jak přicházejí a jak je váš endpoint dokáže zpracovat.
Mohu filtrovat, které zprávy se přeposílají?
Momentálně jsou přeposílány všechny zprávy, které spustí automatizaci Zkratek. Můžete implementovat filtrační logiku ve vašem webhook endpointu pro ignorování nechtěných zpráv.
Mohu použít HTTP místo HTTPS?
Ne, z bezpečnostních důvodů Forward SMS vyžaduje HTTPS endpointy. To zajišťuje, že vaše data zpráv jsou při přenosu šifrována.