SMS'i webhook API endpoint'ine nasıl yönlendirilir?
Hızlı Cevap: Forward SMS, metin mesajlarınızı JSON webhook olarak herhangi bir HTTP endpoint'ine gönderebilir. Uygulamada bir Webhook hedefi oluşturun, endpoint URL'nizi girin ve Shortcuts otomasyonu kurun. Endpoint'iniz mesaj içeriği, gönderen ve zaman damgası içeren bir POST isteği alacaktır.
Webhook SMS Yönlendirme Nedir?
Webhook SMS yönlendirme, metin mesajlarınızı kontrol ettiğiniz herhangi bir HTTP endpoint'ine otomatik olarak gönderir. Platforma özgü entegrasyonların (Slack, Discord, Teams) aksine, webhooks mesajların nasıl işleneceği konusunda tam kontrol sağlar. Bu, özel entegrasyonlar, loglama sistemleri veya otomasyon iş akışları oluşturan geliştiriciler için idealdir.
Bir mesaj geldiğinde, Forward SMS endpoint'inize mesaj içeriği, gönderen bilgisi ve meta veriler içeren yapılandırılmış bir JSON payload ile POST isteği gönderir.
Neden Webhooks Kullanmalısınız
Webhooks, hazır entegrasyonların sağlayamayacağı esneklik sunar:
- Özel otomasyon: SMS aldığınızda herhangi bir iş akışını tetikleyin - veritabanlarını güncelleyin, bildirimler gönderin, scriptler çalıştırın veya herhangi bir hizmetle entegre edin
- Veri loglama: Uyumluluk, analitik veya yedekleme amaçları için tüm gelen mesajları kendi veritabanınızda saklayın
- Çoklu hizmet yönlendirme: Mesajları içerik veya gönderene göre farklı hedeflere yönlendirmek için kendi mantığınızla işleyin
- Dahili araçlar: Dahili panolarınıza ve araçlarınıza SMS destekli özellikler ekleyin
- IoT entegrasyonu: SMS uyarılarını IoT sistemlerinize, ev otomasyonunuza veya izleme altyapınıza bağlayın
Webhook Payload Formatı
Bir mesaj yönlendirildiğinde, endpoint'iniz aşağıdaki JSON payload ile bir POST isteği alır:
{
"timestamp": "2025-01-31T14:30:00Z",
"content": "Your verification code is 123456",
"sender": "+1234567890",
"contact": "Bank of Example"
}
Payload Alanları
| Alan | Tip | Açıklama |
|-------|------|-------------|
| timestamp | string | Mesajın yönlendirildiği zamanın ISO 8601 formatında zaman damgası |
| content | string | Metin mesajı içeriği |
| sender | string | Gönderenin telefon numarası (varsa) |
| contact | string | Adres defterinizden kişi adı (eşleşirse) |
Webhook Yönlendirmesini Kurma
Adım 1: Forward SMS'i İndirin
Forward SMS'i App Store'dan indirin.
Adım 2: Webhook Hedefi Oluşturun
Uygulamayı açın, "Add Destination"a dokunun ve "Webhook" seçin. Endpoint URL'nizi girin. URL güvenlik için HTTPS olmalıdır.
Adım 3: Endpoint'inizi Test Edin
Endpoint'inizin webhook'u doğru şekilde aldığını doğrulamak için "Send test message" düğmesini kullanın. Payload'ın ulaştığını onaylamak için sunucu loglarınızı kontrol edin.
Adım 4: Shortcuts Otomasyonunu Kurun
Mesaj yönlendirmeyi tetikleyen otomasyonu oluşturmak için Shortcuts kurulum kılavuzumuzu takip edin.
Uygulama Örnekleri
Çeşitli dillerde webhook'u işleme örnekleri:
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
Güvenlik Hususları
HTTPS Kullanın
Webhook payload'ını aktarım sırasında şifrelemek için her zaman HTTPS endpoint'leri kullanın. Forward SMS, webhook URL'leri için HTTPS gerektirir.
Hataları Düzgün Şekilde İşleyin
Endpoint'iniz alındığını onaylamak için 2xx durum kodu döndürmelidir. Forward SMS hata yanıtı alırsa, başarısızlığı loglar.
Sorun Giderme
Webhook Mesaj Almıyor
- URL'yi kontrol edin: Endpoint URL'nizin doğru ve internetten erişilebilir olduğundan emin olun
- HTTPS'yi doğrulayın: URL HTTP değil, HTTPS kullanmalıdır
- Güvenlik duvarı kurallarını kontrol edin: Sunucunuz gelen POST isteklerini kabul etmelidir
- Endpoint'i test edin: Bağlantıyı doğrulamak için uygulamadaki test düğmesini kullanın
Mesajlar Yavaş Geliyor
- Shortcuts otomasyonunu kontrol edin: Otomasyonun onay gerektirmeden çalıştığından emin olun
- Arka Plan Uygulama Yenilemesi: iOS Ayarlarında Forward SMS için bunu etkinleştirin
- Ağ sorunları: Hem iPhone'unuz hem de sunucunuz kararlı internet bağlantısına ihtiyaç duyar
Payload Ayrıştırılamıyor
- Content-Type: İstek
Content-Type: application/jsonkullanır - JSON ayrıştırma: Sunucunuzun JSON gövdesini doğru şekilde ayrıştırdığından emin olun
- Karakter kodlaması: Mesajlar UTF-8 kodludur
SSS
Birden fazla webhook endpoint'ine yönlendirebilir miyim?
Evet, Forward SMS'de birden fazla Webhook hedefi oluşturun. Her hedefin farklı bir endpoint URL'si olabilir ve tümü yönlendirilen mesajları alır.
Endpoint'im çöktüğünde ne olur?
Endpoint'iniz hata döndürürse veya erişilemezse, mesaj yönlendirme başarısız olur. Uygulama bu başarısızlıkları hata ayıklama için loglar. Yedek veya izleme sistemi uygulamayı düşünün.
Webhook'larda hız sınırı var mı?
Forward SMS'den yapay bir hız sınırı yoktur. Mesajlar geldikleri anda yönlendirilir ve endpoint'iniz bunları işleyebilir.
Hangi mesajların yönlendirileceğini filtreleyebilir miyim?
Şu anda, Shortcuts otomasyonunu tetikleyen tüm mesajlar yönlendirilir. İstenmeyen mesajları yok saymak için webhook endpoint'inizde filtreleme mantığı uygulayabilirsiniz.
HTTPS yerine HTTP kullanabilir miyim?
Hayır, güvenlik nedeniyle Forward SMS HTTPS endpoint'leri gerektirir. Bu, mesaj verilerinizin aktarım sırasında şifrelenmesini sağlar.