Kako posredovati SMS na webhook API endpoint?

Vodic 5 min branja
Kopiraj povezavo Deli

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.

Ikona Forward SMS

Forward SMS

Samodejno posredujte SMS sporocila na e-posto, Slack, Teams in Discord

Prenesi iz App Store