Cara meneruskan SMS ke webhook API endpoint?

Panduan 5 menit baca
Salin Link Bagikan

Jawaban Cepat: Forward SMS dapat mengirim pesan teks Anda ke HTTP endpoint apa pun sebagai JSON webhook. Buat destinasi Webhook di aplikasi, masukkan URL endpoint Anda, dan atur Shortcuts automation. Endpoint Anda akan menerima POST request dengan konten pesan, pengirim, dan timestamp.

Apa itu Webhook SMS Forwarding?

Webhook SMS forwarding secara otomatis mengirim pesan teks Anda ke HTTP endpoint apa pun yang Anda kontrol. Berbeda dengan integrasi khusus platform (Slack, Discord, Teams), webhooks memberi Anda kontrol penuh atas cara pesan diproses. Ini ideal untuk developer yang membangun integrasi kustom, sistem logging, atau workflow otomatisasi.

Ketika pesan tiba, Forward SMS mengirim POST request ke endpoint Anda dengan JSON payload terstruktur yang berisi konten pesan, informasi pengirim, dan metadata.

Mengapa Menggunakan Webhooks

Webhooks menawarkan fleksibilitas yang tidak dapat ditandingi oleh integrasi siap pakai:

  • Otomatisasi kustom: Picu workflow apa pun saat Anda menerima SMS - perbarui database, kirim notifikasi, jalankan script, atau integrasikan dengan layanan apa pun
  • Logging data: Simpan semua pesan masuk di database Anda sendiri untuk kepatuhan, analitik, atau tujuan backup
  • Routing multi-layanan: Proses pesan dengan logika Anda sendiri untuk mengarahkannya ke berbagai tujuan berdasarkan konten atau pengirim
  • Tool internal: Bangun fitur bertenaga SMS ke dalam dashboard dan tool internal Anda
  • Integrasi IoT: Hubungkan alert SMS ke sistem IoT, otomatisasi rumah, atau infrastruktur monitoring Anda

Format Webhook Payload

Ketika pesan diteruskan, endpoint Anda menerima POST request dengan JSON payload berikut:

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

Field Payload

| Field | Tipe | Deskripsi | |-------|------|-------------| | timestamp | string | Timestamp format ISO 8601 saat pesan diteruskan | | content | string | Konten pesan teks | | sender | string | Nomor telepon pengirim (jika tersedia) | | contact | string | Nama kontak dari buku alamat Anda (jika cocok) |

Menyiapkan Webhook Forwarding

Langkah 1: Download Forward SMS

Download Forward SMS dari App Store.

Langkah 2: Buat Destinasi Webhook

Buka aplikasi, ketuk "Add Destination", dan pilih "Webhook". Masukkan URL endpoint Anda. URL harus HTTPS untuk keamanan.

Langkah 3: Uji Endpoint Anda

Gunakan tombol "Send test message" untuk memverifikasi endpoint Anda menerima webhook dengan benar. Periksa log server Anda untuk mengonfirmasi payload telah tiba.

Langkah 4: Atur Shortcuts Automation

Ikuti panduan pengaturan Shortcuts kami untuk membuat automation yang memicu penerusan pesan.

Contoh Implementasi

Berikut contoh untuk menangani webhook dalam berbagai bahasa:

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

Pertimbangan Keamanan

Gunakan HTTPS

Selalu gunakan HTTPS endpoint untuk mengenkripsi webhook payload saat transit. Forward SMS memerlukan HTTPS untuk URL webhook.

Tangani Error dengan Baik

Endpoint Anda harus mengembalikan status code 2xx untuk mengonfirmasi penerimaan. Jika Forward SMS menerima respons error, ia akan mencatat kegagalan.

Troubleshooting

Webhook Tidak Menerima Pesan

  • Periksa URL: Pastikan URL endpoint Anda benar dan dapat diakses dari internet
  • Verifikasi HTTPS: URL harus menggunakan HTTPS, bukan HTTP
  • Periksa aturan firewall: Server Anda harus menerima POST request masuk
  • Uji endpoint: Gunakan tombol tes di aplikasi untuk memverifikasi konektivitas

Pesan Tiba Lambat

  • Periksa Shortcuts automation: Pastikan automation berjalan tanpa memerlukan konfirmasi
  • Background App Refresh: Aktifkan ini untuk Forward SMS di Pengaturan iOS
  • Masalah jaringan: Baik iPhone maupun server Anda memerlukan koneksi internet yang stabil

Payload Tidak Dapat Di-parse

  • Content-Type: Request menggunakan Content-Type: application/json
  • Parsing JSON: Pastikan server Anda mem-parse body JSON dengan benar
  • Encoding karakter: Pesan menggunakan encoding UTF-8

FAQ

Bisakah saya meneruskan ke beberapa webhook endpoint?

Ya, buat beberapa destinasi Webhook di Forward SMS. Setiap destinasi dapat memiliki URL endpoint berbeda, dan semuanya akan menerima pesan yang diteruskan.

Apa yang terjadi jika endpoint saya down?

Jika endpoint Anda mengembalikan error atau tidak dapat dijangkau, penerusan pesan akan gagal. Aplikasi mencatat kegagalan ini untuk debugging. Pertimbangkan untuk mengimplementasikan sistem fallback atau monitoring.

Apakah ada rate limit pada webhooks?

Tidak ada rate limit buatan dari Forward SMS. Pesan diteruskan secepat mereka tiba dan endpoint Anda dapat memprosesnya.

Bisakah saya memfilter pesan mana yang diteruskan?

Saat ini, semua pesan yang memicu Shortcuts automation diteruskan. Anda dapat mengimplementasikan logika filtering di webhook endpoint Anda untuk mengabaikan pesan yang tidak diinginkan.

Bisakah saya menggunakan HTTP alih-alih HTTPS?

Tidak, untuk alasan keamanan Forward SMS memerlukan HTTPS endpoint. Ini memastikan data pesan Anda terenkripsi saat transit.

Ikon Forward SMS

Forward SMS

Teruskan pesan teks otomatis ke Email, Slack, Teams dan Discord

Unduh di App Store