Как да препращам SMS към webhook API endpoint?

Ръководство 5 мин четене
Копирай линк Сподели

Бърз отговор: Forward SMS може да изпраща вашите текстови съобщения към всеки HTTP endpoint като JSON webhook. Създайте дестинация Webhook в приложението, въведете URL адреса на вашия endpoint и настройте автоматизация в Shortcuts. Вашият endpoint ще получи POST заявка със съдържанието на съобщението, подателя и времевия печат.

Какво е препращане на SMS чрез webhook?

Препращането на SMS чрез webhook автоматично изпраща вашите текстови съобщения към всеки HTTP endpoint, който контролирате. За разлика от интеграциите, специфични за платформи (Slack, Discord, Teams), webhooks ви дават пълен контрол върху обработката на съобщенията. Това е идеално за разработчици, създаващи персонализирани интеграции, системи за логване или автоматизирани работни процеси.

Когато пристигне съобщение, Forward SMS изпраща POST заявка към вашия endpoint със структуриран JSON payload, съдържащ съдържанието на съобщението, информация за подателя и метаданни.

Защо да използвате webhooks

Webhooks предлагат гъвкавост, която готовите интеграции не могат да осигурят:

  • Персонализирана автоматизация: Задействайте всеки работен процес при получаване на SMS — актуализирайте бази данни, изпращайте известия, изпълнявайте скриптове или се интегрирайте с всяка услуга
  • Логване на данни: Съхранявайте всички входящи съобщения в собствена база данни за съответствие, анализ или резервно копиране
  • Маршрутизиране към множество услуги: Обработвайте съобщенията със собствена логика за насочването им към различни дестинации въз основа на съдържание или подател
  • Вътрешни инструменти: Изграждайте функции, задвижвани от SMS, във вашите вътрешни табла и инструменти
  • IoT интеграция: Свържете SMS известия с вашите IoT системи, домашна автоматизация или инфраструктура за мониторинг

Формат на webhook payload

Когато съобщението е препратено, вашият endpoint получава POST заявка със следния JSON payload:

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

Полета на payload

| Поле | Тип | Описание | |------|-----|----------| | timestamp | string | Времеви печат във формат ISO 8601, когато съобщението е препратено | | content | string | Съдържание на текстовото съобщение | | sender | string | Телефонен номер на подателя (ако е наличен) | | contact | string | Име на контакт от вашата адресна книга (ако е намерено) |

Настройване на препращане чрез webhook

Стъпка 1: Изтеглете Forward SMS

Изтеглете Forward SMS от App Store.

Стъпка 2: Създайте дестинация Webhook

Отворете приложението, натиснете "Добави дестинация" и изберете "Webhook". Въведете URL адреса на вашия endpoint. URL адресът трябва да е HTTPS за сигурност.

Стъпка 3: Тествайте вашия endpoint

Използвайте бутона "Изпрати тестово съобщение", за да проверите дали вашият endpoint получава webhook правилно. Проверете логовете на сървъра, за да потвърдите, че payload е пристигнал.

Стъпка 4: Настройте автоматизация в Shortcuts

Следвайте нашето ръководство за настройка на Shortcuts, за да създадете автоматизация, която задейства препращането на съобщения.

Примери за имплементация

Ето примери за обработка на 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 endpoints за криптиране на webhook payload при предаване. Forward SMS изисква HTTPS за webhook URL адреси.

Обработвайте грешките елегантно

Вашият endpoint трябва да връща код на състоянието 2xx за потвърждаване на получаването. Ако Forward SMS получи отговор с грешка, той записва неуспеха в лога.

Отстраняване на проблеми

Webhook не получава съобщения

  • Проверете URL адреса: Уверете се, че URL адресът на вашия endpoint е правилен и достъпен от интернет
  • Проверете HTTPS: URL адресът трябва да използва HTTPS, а не HTTP
  • Проверете правилата на защитната стена: Вашият сървър трябва да приема входящи POST заявки
  • Тествайте endpoint: Използвайте тестовия бутон в приложението, за да проверите свързаността

Съобщенията пристигат бавно

  • Проверете автоматизацията в Shortcuts: Уверете се, че автоматизацията се изпълнява без изискване за потвърждение
  • Обновяване на приложения във фонов режим: Активирайте тази функция за Forward SMS в настройките на iOS
  • Проблеми с мрежата: Както вашият iPhone, така и сървърът трябва да имат стабилна интернет връзка

Payload не се парсва

  • Content-Type: Заявката използва Content-Type: application/json
  • JSON парсване: Уверете се, че вашият сървър правилно парсва JSON тялото
  • Кодиране на символи: Съобщенията са кодирани в UTF-8

Често задавани въпроси

Мога ли да препращам към множество webhook endpoints?

Да, създайте множество Webhook дестинации в Forward SMS. Всяка дестинация може да има различен URL адрес на endpoint и всички ще получават препратените съобщения.

Какво се случва, ако моят endpoint е недостъпен?

Ако вашият endpoint върне грешка или е недостъпен, препращането на съобщението ще се провали. Приложението записва тези неуспехи за отстраняване на грешки. Обмислете внедряване на резервна система или мониторинг.

Има ли ограничение на скоростта за webhooks?

Forward SMS няма изкуствено ограничение на скоростта. Съобщенията се препращат толкова бързо, колкото пристигат и колкото бързо вашият endpoint може да ги обработи.

Мога ли да филтрирам кои съобщения се препращат?

В момента всички съобщения, които задействат автоматизацията в Shortcuts, се препращат. Можете да имплементирате логика за филтриране във вашия webhook endpoint, за да игнорирате нежелани съобщения.

Мога ли да използвам HTTP вместо HTTPS?

Не, по съображения за сигурност Forward SMS изисква HTTPS endpoints. Това гарантира, че данните на вашите съобщения са криптирани при предаване.

Forward SMS Икона

Forward SMS

Автоматично пренасочване на текстови съобщения към Имейл, Slack, Teams и Discord

Изтеглете от App Store