วิธีส่งต่อ SMS ไปยัง webhook API endpoint?

คู่มือ 4 นาทีในการอ่าน
คัดลอกลิงก์ แชร์

คำตอบด่วน: Forward SMS สามารถส่งข้อความของคุณไปยัง HTTP endpoint ใดก็ได้ในรูปแบบ JSON webhook สร้าง Webhook destination ในแอป ใส่ URL ของ endpoint และตั้งค่า Shortcuts automation endpoint ของคุณจะได้รับ POST request พร้อมเนื้อหาข้อความ ผู้ส่ง และ timestamp

Webhook SMS Forwarding คืออะไร?

Webhook SMS forwarding ส่งข้อความของคุณโดยอัตโนมัติไปยัง HTTP endpoint ใดก็ได้ที่คุณควบคุม ต่างจากการเชื่อมต่อเฉพาะแพลตฟอร์ม (Slack, Discord, Teams) webhooks ให้คุณควบคุมวิธีการประมวลผลข้อความได้อย่างเต็มที่ เหมาะสำหรับนักพัฒนาที่สร้างการเชื่อมต่อแบบกำหนดเอง ระบบบันทึก หรือ workflow อัตโนมัติ

เมื่อข้อความมาถึง Forward SMS จะส่ง POST request ไปยัง endpoint ของคุณพร้อม JSON payload ที่มีโครงสร้าง ประกอบด้วยเนื้อหาข้อความ ข้อมูลผู้ส่ง และ metadata

ทำไมต้องใช้ Webhooks

Webhooks มีความยืดหยุ่นที่การเชื่อมต่อสำเร็จรูปไม่สามารถทำได้:

  • Automation แบบกำหนดเอง: เรียก workflow ใดก็ได้เมื่อได้รับ SMS - อัปเดตฐานข้อมูล ส่งการแจ้งเตือน รันสคริปต์ หรือเชื่อมต่อกับบริการใดก็ได้
  • บันทึกข้อมูล: เก็บข้อความขาเข้าทั้งหมดในฐานข้อมูลของคุณเองสำหรับการปฏิบัติตามกฎระเบียบ การวิเคราะห์ หรือการสำรองข้อมูล
  • การกำหนดเส้นทางหลายบริการ: ประมวลผลข้อความด้วยตรรกะของคุณเองเพื่อส่งไปยังปลายทางต่างๆ ตามเนื้อหาหรือผู้ส่ง
  • เครื่องมือภายใน: สร้างฟีเจอร์ที่ขับเคลื่อนด้วย SMS ในแดชบอร์ดและเครื่องมือภายในของคุณ
  • การเชื่อมต่อ IoT: เชื่อมต่อการแจ้งเตือน SMS กับระบบ IoT ระบบอัตโนมัติในบ้าน หรือโครงสร้างพื้นฐานการตรวจสอบของคุณ

รูปแบบ Webhook Payload

เมื่อข้อความถูกส่งต่อ endpoint ของคุณจะได้รับ POST request พร้อม JSON payload ดังนี้:

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

ฟิลด์ของ Payload

| ฟิลด์ | ประเภท | คำอธิบาย | |-------|------|-------------| | timestamp | string | Timestamp รูปแบบ ISO 8601 เมื่อข้อความถูกส่งต่อ | | content | string | เนื้อหาข้อความ | | sender | string | หมายเลขโทรศัพท์ของผู้ส่ง (ถ้ามี) | | contact | string | ชื่อผู้ติดต่อจากสมุดที่อยู่ของคุณ (ถ้าตรงกัน) |

การตั้งค่า Webhook Forwarding

ขั้นตอนที่ 1: ดาวน์โหลด Forward SMS

ดาวน์โหลด Forward SMS จาก App Store

ขั้นตอนที่ 2: สร้าง Webhook Destination

เปิดแอป แตะ "Add Destination" และเลือก "Webhook" ใส่ URL ของ endpoint ของคุณ URL ต้องเป็น HTTPS เพื่อความปลอดภัย

ขั้นตอนที่ 3: ทดสอบ Endpoint ของคุณ

ใช้ปุ่ม "Send test message" เพื่อตรวจสอบว่า endpoint ของคุณได้รับ webhook อย่างถูกต้อง ตรวจสอบ log ของเซิร์ฟเวอร์เพื่อยืนยันว่า payload มาถึงแล้ว

ขั้นตอนที่ 4: ตั้งค่า Shortcuts Automation

ทำตาม คู่มือการตั้งค่า Shortcuts เพื่อสร้าง automation ที่เรียกการส่งต่อข้อความ

ตัวอย่างการใช้งาน

นี่คือตัวอย่างการจัดการ webhook ในภาษาต่างๆ:

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

ข้อควรพิจารณาด้านความปลอดภัย

ใช้ HTTPS

ใช้ HTTPS endpoint เสมอเพื่อเข้ารหัส webhook payload ระหว่างการส่ง Forward SMS ต้องการ HTTPS สำหรับ URL ของ webhook

จัดการข้อผิดพลาดอย่างเหมาะสม

Endpoint ของคุณควรส่งคืน status code 2xx เพื่อยืนยันการรับ หาก Forward SMS ได้รับ error response จะบันทึกความล้มเหลว

การแก้ไขปัญหา

Webhook ไม่ได้รับข้อความ

  • ตรวจสอบ URL: ตรวจสอบให้แน่ใจว่า URL ของ endpoint ถูกต้องและเข้าถึงได้จากอินเทอร์เน็ต
  • ตรวจสอบ HTTPS: URL ต้องใช้ HTTPS ไม่ใช่ HTTP
  • ตรวจสอบกฎ firewall: เซิร์ฟเวอร์ของคุณต้องยอมรับ POST request ขาเข้า
  • ทดสอบ endpoint: ใช้ปุ่มทดสอบในแอปเพื่อตรวจสอบการเชื่อมต่อ

ข้อความมาถึงช้า

  • ตรวจสอบ Shortcuts automation: ตรวจสอบให้แน่ใจว่า automation ทำงานโดยไม่ต้องการการยืนยัน
  • Background App Refresh: เปิดใช้งานสำหรับ Forward SMS ในการตั้งค่า iOS
  • ปัญหาเครือข่าย: ทั้ง iPhone และเซิร์ฟเวอร์ของคุณต้องมีการเชื่อมต่ออินเทอร์เน็ตที่เสถียร

Payload ไม่สามารถ Parse ได้

  • Content-Type: Request ใช้ Content-Type: application/json
  • การ parse JSON: ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ของคุณ parse JSON body อย่างถูกต้อง
  • การเข้ารหัสอักขระ: ข้อความเข้ารหัส UTF-8

คำถามที่พบบ่อย

ฉันสามารถส่งต่อไปยังหลาย webhook endpoint ได้หรือไม่?

ได้ สร้าง Webhook destination หลายรายการใน Forward SMS แต่ละ destination สามารถมี URL ของ endpoint ที่แตกต่างกัน และทั้งหมดจะได้รับข้อความที่ส่งต่อ

จะเกิดอะไรขึ้นถ้า endpoint ของฉันไม่ทำงาน?

หาก endpoint ของคุณส่งคืน error หรือไม่สามารถเข้าถึงได้ การส่งต่อข้อความจะล้มเหลว แอปจะบันทึกความล้มเหลวเหล่านี้สำหรับการ debug พิจารณาใช้ระบบ fallback หรือการตรวจสอบ

มีการจำกัดอัตราบน webhooks หรือไม่?

ไม่มีการจำกัดอัตราเทียมจาก Forward SMS ข้อความถูกส่งต่อเร็วเท่าที่มาถึงและ endpoint ของคุณสามารถประมวลผลได้

ฉันสามารถกรองว่าข้อความใดจะถูกส่งต่อได้หรือไม่?

ปัจจุบัน ข้อความทั้งหมดที่เรียก Shortcuts automation จะถูกส่งต่อ คุณสามารถใช้ตรรกะการกรองใน webhook endpoint ของคุณเพื่อเพิกเฉยข้อความที่ไม่ต้องการ

ฉันสามารถใช้ HTTP แทน HTTPS ได้หรือไม่?

ไม่ได้ เพื่อเหตุผลด้านความปลอดภัย Forward SMS ต้องการ HTTPS endpoint สิ่งนี้ทำให้มั่นใจได้ว่าข้อมูลข้อความของคุณถูกเข้ารหัสระหว่างการส่ง

ไอคอน Forward SMS

Forward SMS

ส่งต่อข้อความอัตโนมัติไปยังอีเมล, Slack, Teams และ Discord

ดาวน์โหลดบน App Store