- Konu sahibi
- #1
SMS API, bir web uygulamasının veya yazılımın cep telefonu numaralarına otomatik SMS göndermesini ve bazı servislerde teslimat durumlarını takip etmesini sağlayan programlama arayüzüdür. Uygulama, SMS operatörleriyle doğrudan haberleşmek yerine API sağlayıcısına bir istek gönderir; sağlayıcı da mesajı ilgili telefon şebekesine iletir. Böylece doğrulama kodu, işlem bildirimi, randevu hatırlatması veya sistem uyarısı gibi mesajlar panelden elle gönderilmeden üretilebilir.
Tipik akışta uygulama önce API sağlayıcısında kimlik doğrulaması yapar. Ardından alıcı numarası, gönderen bilgisi ve mesaj metnini içeren bir istek gönderir. API genellikle isteğin kabul edildiğini belirten bir yanıt ve bir mesaj kimliği döndürür. Bu yanıt, SMS'in kesin olarak telefona ulaştığı anlamına gelmez; yalnızca gönderim talebinin kabul edildiğini gösterebilir.
Teslimat sonucu daha sonra sağlayıcının durum sorgulama özelliğinden veya webhook mekanizmasından alınabilir. Webhook kullanılıyorsa sağlayıcı, teslim edildi, başarısız oldu ya da beklemede gibi bir durum oluştuğunda sizin uygulamanızdaki belirli bir sunucu adresine bildirim gönderir.
Bir kullanıcı hesabına giriş yaptığında uygulama rastgele bir doğrulama kodu üretir. Doğrulama akışı kısa süre, tek kullanım ve deneme sınırıyla yönetilir; kodun veya ilgili doğrulama kaydının saklanması güvenli tasarlanmalıdır. Hazır doğrulama servisi kullanılıyorsa kodu kendiniz yönetmek zorunda olmayabilirsiniz. Uygulama SMS API'ye şu bilgileri gönderir:
SMS API başarılı bir kabul yanıtı verirse kullanıcıdan gelen kod alınır ve veritabanındaki kayıtla karşılaştırılır. Kod yanlışsa, süresi dolmuşsa veya daha önce kullanılmışsa giriş tamamlanmaz. API isteği başarısızsa kullanıcıya kodun gönderilemediği bildirilir; uygulama aynı kodu kontrolsüz biçimde tekrar tekrar göndermemelidir.
İhtiyaç, yalnızca “SMS gönderebilmekten” ibaret değildir. Aşağıdaki özellikler kullanım amacına göre değerlendirilmelidir:
Sağlayıcının API dokümantasyonunda kimlik doğrulama yöntemi, istek gövdesi, hata kodları, teslimat raporu ve webhook doğrulaması incelenmelidir. Telefon numaraları uygulamada sabit bir biçimde tutulmalı; genellikle ülke kodunu içeren uluslararası biçim tercih edilmelidir. Gönderen adı ve mesaj uzunluğu gibi kurallar ülkeye ve sağlayıcıya göre değişebildiğinden, bunlar varsayılarak kodlanmamalıdır.
API anahtarını istemci tarafında saklamak, anahtarın kötüye kullanılmasına ve kontrolsüz SMS gönderimine yol açabilir. Bir diğer hata, her buton tıklamasında yeni SMS göndermektir; özellikle doğrulama kodlarında süre, yeniden gönderme aralığı ve deneme sınırı uygulanmalıdır. Telefon numarasını biçim doğrulaması yapmadan göndermek de hatalı veya başka bir ülkeye ait numaraların reddedilmesine neden olabilir.
Ayrıca pazarlama mesajları ile işlem bildirimlerini aynı akışta değerlendirmemek gerekir. Kullanıcı izni, abonelikten çıkma ve ilgili kurallar mesajın amacına ve hedef ülkeye göre ayrıca ele alınmalıdır. SMS API teknik iletimi sağlar; kullanıcı izinlerinin, içerik kurallarının ve uygulamanın iş mantığının sorumluluğunu tek başına üstlenmez.
SMS API nasıl çalışır?
Tipik akışta uygulama önce API sağlayıcısında kimlik doğrulaması yapar. Ardından alıcı numarası, gönderen bilgisi ve mesaj metnini içeren bir istek gönderir. API genellikle isteğin kabul edildiğini belirten bir yanıt ve bir mesaj kimliği döndürür. Bu yanıt, SMS'in kesin olarak telefona ulaştığı anlamına gelmez; yalnızca gönderim talebinin kabul edildiğini gösterebilir.
Teslimat sonucu daha sonra sağlayıcının durum sorgulama özelliğinden veya webhook mekanizmasından alınabilir. Webhook kullanılıyorsa sağlayıcı, teslim edildi, başarısız oldu ya da beklemede gibi bir durum oluştuğunda sizin uygulamanızdaki belirli bir sunucu adresine bildirim gönderir.
Somut örnek: giriş doğrulama kodu
Bir kullanıcı hesabına giriş yaptığında uygulama rastgele bir doğrulama kodu üretir. Doğrulama akışı kısa süre, tek kullanım ve deneme sınırıyla yönetilir; kodun veya ilgili doğrulama kaydının saklanması güvenli tasarlanmalıdır. Hazır doğrulama servisi kullanılıyorsa kodu kendiniz yönetmek zorunda olmayabilirsiniz. Uygulama SMS API'ye şu bilgileri gönderir:
- Alıcının uluslararası biçimdeki telefon numarası
- Uygulamada tanımlı gönderen adı veya numarası
- “Giriş kodunuz: 482731” gibi mesaj metni
- Gerekirse uygulamanın kendi işlem veya şablon kimliği
SMS API başarılı bir kabul yanıtı verirse kullanıcıdan gelen kod alınır ve veritabanındaki kayıtla karşılaştırılır. Kod yanlışsa, süresi dolmuşsa veya daha önce kullanılmışsa giriş tamamlanmaz. API isteği başarısızsa kullanıcıya kodun gönderilemediği bildirilir; uygulama aynı kodu kontrolsüz biçimde tekrar tekrar göndermemelidir.
Bir SMS API seçerken hangi özelliklere bakılır?
İhtiyaç, yalnızca “SMS gönderebilmekten” ibaret değildir. Aşağıdaki özellikler kullanım amacına göre değerlendirilmelidir:
| İhtiyaç | Bakılacak özellik | Neden önemli? |
|---|---|---|
| Doğrulama kodu | Hızlı gönderim, durum bilgisi, tekrar denetimi | Kullanıcının bekleme ve kötüye kullanım sorunlarını azaltır |
| İşlem bildirimi | Teslimat raporu ve hata ayrıntısı | Bildirim ulaşmadığında alternatif işlem yapılabilir |
| Çok sayıda ülke | Ülke kapsamı ve numara biçimi desteği | Numaranın doğru rotaya yönlendirilmesini kolaylaştırır |
Sağlayıcının API dokümantasyonunda kimlik doğrulama yöntemi, istek gövdesi, hata kodları, teslimat raporu ve webhook doğrulaması incelenmelidir. Telefon numaraları uygulamada sabit bir biçimde tutulmalı; genellikle ülke kodunu içeren uluslararası biçim tercih edilmelidir. Gönderen adı ve mesaj uzunluğu gibi kurallar ülkeye ve sağlayıcıya göre değişebildiğinden, bunlar varsayılarak kodlanmamalıdır.
Uygulamaya ekleme adımları
- SMS sağlayıcısında bir uygulama veya API kimliği oluşturun ve erişim anahtarını yalnızca sunucu tarafında saklayın. Anahtarı tarayıcıya, mobil uygulama paketine veya herkese açık depo içine koymayın.
- Uygulamanızda ayrı bir SMS servisi katmanı oluşturun. Bu katman alıcı numarasını, mesajı ve gerekiyorsa şablon bilgisini alıp sağlayıcıya istek göndersin.
- Başarılı API yanıtındaki mesaj kimliğini, gönderim zamanı ve işlem amacıyla birlikte kaydedin. Kullanıcıya yalnızca API kabul yanıtına dayanarak “teslim edildi” demeyin.
- Teslimat raporu veya webhook desteğini etkinleştirin. Önce sağlayıcının belgelenmiş imza veya kimlik doğrulamasını kontrol edin. Yalnız URL’yi bilmek bildirimin gerçek olduğunu kanıtlamaz. Gelen durum bildirimini mesaj kimliğiyle eşleştirerek uygulamadaki gönderim kaydını güncelleyin.
- Hata, zaman aşımı ve tekrarlanan istekleri yönetin. Aynı isteğin iki kez işlenmesi iki SMS gönderebileceğinden, uygulama tarafında işlem kimliği veya idempotency yaklaşımı kullanın.
- Gerçek kullanıcıya açmadan önce geçersiz numara, API reddi, teslim edilememe ve sağlayıcıya ulaşılamayan ağ senaryolarını test edin.
Sık yapılan hatalar
API anahtarını istemci tarafında saklamak, anahtarın kötüye kullanılmasına ve kontrolsüz SMS gönderimine yol açabilir. Bir diğer hata, her buton tıklamasında yeni SMS göndermektir; özellikle doğrulama kodlarında süre, yeniden gönderme aralığı ve deneme sınırı uygulanmalıdır. Telefon numarasını biçim doğrulaması yapmadan göndermek de hatalı veya başka bir ülkeye ait numaraların reddedilmesine neden olabilir.
Ayrıca pazarlama mesajları ile işlem bildirimlerini aynı akışta değerlendirmemek gerekir. Kullanıcı izni, abonelikten çıkma ve ilgili kurallar mesajın amacına ve hedef ülkeye göre ayrıca ele alınmalıdır. SMS API teknik iletimi sağlar; kullanıcı izinlerinin, içerik kurallarının ve uygulamanın iş mantığının sorumluluğunu tek başına üstlenmez.