Kako posredovati SMS na webhook API endpoint?
Hiter odgovor: Forward SMS lahko pošilja vaša besedilna sporočila na poljuben HTTP endpoint kot JSON webhook. Ustvarite destinacijo Webhook v aplikaciji, vnesite URL vašega endpointa in nastavite avtomatizacijo Shortcuts. Vaš endpoint bo prejel POST zahtevo z vsebino sporočila, pošiljateljem in časovnim žigom.
Kaj je posredovanje SMS prek webhook?
Posredovanje SMS prek webhook samodejno pošilja vaša besedilna sporočila na poljuben HTTP endpoint, ki ga upravljate. Za razliko od integracij, specifičnih za platforme (Slack, Discord, Teams), vam webhooks dajejo popoln nadzor nad obdelavo sporočil. To je idealno za razvijalce, ki gradijo prilagojene integracije, sisteme za beleženje ali avtomatizirane delovne tokove.
Ko prispe sporočilo, Forward SMS pošlje POST zahtevo na vaš endpoint s strukturiranim JSON payloadom, ki vsebuje vsebino sporočila, informacije o pošiljatelju in metapodatke.
Zakaj uporabljati webhooks
Webhooks ponujajo prilagodljivost, ki je vnaprej pripravljene integracije ne morejo zagotoviti:
- Prilagojena avtomatizacija: Sprožite poljuben delovni tok ob prejemu SMS — posodobite baze podatkov, pošiljajte obvestila, izvajajte skripte ali se integrirajte s poljubno storitvijo
- Beleženje podatkov: Shranjujte vsa dohodna sporočila v lastni bazi podatkov za namene skladnosti, analitike ali varnostnega kopiranja
- Usmerjanje na več storitev: Obdelujte sporočila z lastno logiko za njihovo usmerjanje na različne destinacije glede na vsebino ali pošiljatelja
- Notranja orodja: Gradite funkcije, ki jih poganja SMS, v svojih notranjih nadzornih ploščah in orodjih
- IoT integracija: Povežite SMS opozorila s svojimi IoT sistemi, domačo avtomatizacijo ali infrastrukturo za nadzor
Format webhook payloada
Ko je sporočilo posredovano, vaš endpoint prejme POST zahtevo z naslednjim JSON payloadom:
{
"timestamp": "2025-01-31T14:30:00Z",
"content": "Your verification code is 123456",
"sender": "+1234567890",
"contact": "Bank of Example"
}
Polja payloada
| Polje | Tip | Opis |
|-------|-----|------|
| timestamp | string | Časovni žig v formatu ISO 8601, ko je bilo sporočilo posredovano |
| content | string | Vsebina besedilnega sporočila |
| sender | string | Telefonska številka pošiljatelja (če je na voljo) |
| contact | string | Ime kontakta iz vašega imenika (če je najdeno) |
Nastavitev posredovanja prek webhook
Korak 1: Prenesite Forward SMS
Prenesite Forward SMS iz App Store.
Korak 2: Ustvarite destinacijo Webhook
Odprite aplikacijo, tapnite "Dodaj destinacijo" in izberite "Webhook". Vnesite URL vašega endpointa. URL mora biti HTTPS zaradi varnosti.
Korak 3: Preizkusite vaš endpoint
Uporabite gumb "Pošlji testno sporočilo", da preverite, ali vaš endpoint pravilno prejema webhook. Preverite dnevnike strežnika, da potrdite, da je payload prispel.
Korak 4: Nastavite avtomatizacijo Shortcuts
Sledite našemu vodniku za nastavitev Shortcuts, da ustvarite avtomatizacijo, ki sproži posredovanje sporočil.
Primeri implementacije
Tukaj so primeri za obdelavo webhooka v različnih jezikih:
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
Varnostni vidiki
Uporabljajte HTTPS
Vedno uporabljajte HTTPS endpointe za šifriranje webhook payloada med prenosom. Forward SMS zahteva HTTPS za webhook URL naslove.
Elegantno obravnavajte napake
Vaš endpoint mora vrniti statusno kodo 2xx za potrditev prejema. Če Forward SMS prejme odgovor z napako, zabeleži neuspeh v dnevnik.
Odpravljanje težav
Webhook ne prejema sporočil
- Preverite URL: Prepričajte se, da je URL vašega endpointa pravilen in dostopen z interneta
- Preverite HTTPS: URL mora uporabljati HTTPS, ne HTTP
- Preverite pravila požarnega zidu: Vaš strežnik mora sprejemati dohodne POST zahteve
- Preizkusite endpoint: Uporabite testni gumb v aplikaciji za preverjanje povezljivosti
Sporočila prihajajo počasi
- Preverite avtomatizacijo Shortcuts: Prepričajte se, da se avtomatizacija izvaja brez zahteve za potrditev
- Osveževanje aplikacij v ozadju: Omogočite to funkcijo za Forward SMS v nastavitvah iOS
- Težave z omrežjem: Tako vaš iPhone kot strežnik potrebujeta stabilno internetno povezavo
Payload se ne razčlenjuje
- Content-Type: Zahteva uporablja
Content-Type: application/json - Razčlenjevanje JSON: Prepričajte se, da vaš strežnik pravilno razčlenjuje JSON telo
- Kodiranje znakov: Sporočila so kodirana v UTF-8
Pogosta vprašanja
Ali lahko posredujem na več webhook endpointov?
Da, ustvarite več destinacij Webhook v Forward SMS. Vsaka destinacija ima lahko drug URL endpointa in vse bodo prejemale posredovana sporočila.
Kaj se zgodi, če je moj endpoint nedostopen?
Če vaš endpoint vrne napako ali je nedostopen, posredovanje sporočila ne bo uspelo. Aplikacija beleži te neuspehe za namene razhroščevanja. Razmislite o implementaciji nadomestnega sistema ali nadzora.
Ali obstaja omejitev hitrosti za webhooks?
Forward SMS nima umetne omejitve hitrosti. Sporočila se posredujejo tako hitro, kot prihajajo in kot hitro jih vaš endpoint lahko obdela.
Ali lahko filtriram, katera sporočila se posredujejo?
Trenutno se posredujejo vsa sporočila, ki sprožijo avtomatizacijo Shortcuts. Logiko filtriranja lahko implementirate v svojem webhook endpointu za ignoriranje neželenih sporočil.
Ali lahko uporabim HTTP namesto HTTPS?
Ne, iz varnostnih razlogov Forward SMS zahteva HTTPS endpointe. To zagotavlja, da so podatki vaših sporočil med prenosom šifrirani.