Cara meneruskan SMS ke webhook API endpoint?
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.