Güvenli bir kullanıcı doğrulama akışı oluşturmak, bitmek bilmeyen operatör onaylarıyla uğraşmayı veya mesaj başına fahiş ücretler ödemeyi gerektirmemelidir. Bu eğitimde, geleneksel A2P SMS sağlayıcılarının yüksek maliyetlerini ve bürokrasisini geride bırakarak, kendi Android donanımınızı ve yerel bir arka ucunuzu (backend) kullanarak nasıl bir SMS OTP sunucusu oluşturacağınızı göstereceğiz.

Neden Özel Bir SMS OTP Sunucusu Kurmalısınız?

Geliştiriciler, arka uç sistemlerinden giden aramalar ve SMS'ler için en iyi API'leri aradıklarında, genellikle Twilio, Vonage veya MessageBird gibi eski telekomünikasyon devlerine yönlendirilirler. Ancak bağımsız geliştiriciler, girişimler ve ABD dışındaki küçük işletmeler için bu platformlar giderek daha kullanışsız hale geldi. Zorunlu 10DLC kaydı, operatör inceleme ücretleri ve karmaşık kurulum süreçleri arasında, sadece tek kullanımlık bir şifre (OTP) göndermeye çalışmak bile haftalarca süren idari işlere yol açabilir.

Dahası, geleneksel ağ geçitleri sizi 160 karakterlik bölüm başına faturalandırır ve yüksek taban ücretler talep eder. Klinik randevu sistemi, sürücü kursu portalı veya yoklama takip sistemi gibi yerel bir hizmet geliştiriyorsanız, sorunsuz çalışan düşük maliyetli bir SMS API'sine ihtiyacınız vardır. Bir Android telefon kullanarak kendi SMS ağ geçidinizi nasıl oluşturacağınızı öğrenerek, operatör kaydını tamamen devre dışı bırakır ve mesajları doğrudan müşterilerinizin zaten tanıdığı bir numaradan gönderirsiniz.

Geleneksel SMS API'leri ile MySMSGate Android Ağ Geçidinin Karşılaştırması

Aşağıda, geleneksel API'ler ile MySMSGate gibi Android tabanlı bir ağ geçidi kullanarak işlemsel (transactional) SMS ve OTP göndermenin doğrudan bir karşılaştırması yer almaktadır.

ÖzellikGeleneksel API'ler (Twilio/Plivo)MySMSGate SMS Ağ Geçidi
SMS Başına Maliyet$0.05 - $0.08+ (ülkeye göre değişir)$0.02 sabit ücret
Faturalandırma Yöntemi160 karakterlik bölüm başınaMesaj başına sabit ücret (herhangi bir uzunlukta)
Kurulum SüresiHaftalar sürer (A2P SMS ve 10DLC kaydı nedeniyle)Anında (5 dakikadan kısa)
Gönderici KimliğiKiralanmış sanal numaralar (genellikle engellenir/göz ardı edilir)Kendi SIM kartınız ve telefon numaranız
Aylık ÜcretlerTekrarlayan numara kiralama ve platform ücretleri$0.00 (Aylık ücret yok, taahhüt yok)
Başarısız SMS PolitikasıTeslimat başarısından bağımsız olarak ücretlendirilirBaşarısızlık durumunda otomatik bakiye iadesi

1. Adım: Hesap Oluşturun ve MySMSGate Uygulamasına Giriş Yapın

Bir Android cihazı programlanabilir bir SMS ağ geçidine dönüştürmek için, arka uç kodunuzla Android işletim sistemi arasında köprü kuracak aracı bir hizmete ihtiyacınız vardır. İşte bu noktada devreye MySMSGate girer.

İlk olarak, ücretsiz hesabınızı oluşturmak için MySMSGate Kayıt Sayfasına gidin. Giriş yaptıktan sonra, web panelinizde API anahtarınız ve benzersiz bir QR kodu göreceksiniz. Bu QR kodu, uzun API kimlik bilgilerini mobil cihazınıza manuel olarak kopyalayıp yapıştırma zorunluluğunu ortadan kaldırır.

Ardından, yardımcı Android uygulamasını telefonunuza indirin. Uygulamayı açın, kurulum QR kodunu tarama seçeneğini seçin ve kameranızı bilgisayar ekranınıza doğrultun. Uygulama kendini otomatik olarak yapılandıracak, uyku modunda uyanık kalmak için anlık bildirimler (push notifications) aracılığıyla güvenli bir bağlantı kuracak ve fiziksel SIM kart yuvalarınızı geliştirici panelinize bağlayacaktır. Artık telefonunuz üzerinden programlı mesajlar yönlendirmeye hazırsınız.

2. Adım: Donanımınızı Kurun (Telefon ve Mini PC)

Birçok geliştirici şu soruyu soruyor: bir telefon ve mini PC kullanarak yerel olarak kendi SMS API'mi nasıl oluşturabilirim? Kendi sunucunuzda barındırılan (self-hosted) yerel bir OTP sunucusunun donanım mimarisi son derece basit ve dayanıklıdır. Özel veya pahalı sunucu raflarına ihtiyacınız yoktur; üzerinde Linux çalışan temel bir mini PC (Intel NUC veya Raspberry Pi gibi) ve yedek bir Android telefon fazlasıyla yeterlidir.

Mini PC'nizi yerel ağınıza bağlayın. Bu mini PC, birincil uygulama veritabanınızı ve arka uç mantığınızı (örneğin Node.js, Python veya Go) barındıracaktır. Android telefonunuzun USB üzerinden mini PC'ye fiziksel olarak bağlı olması gerekmez. MySMSGate, iletişimi bulut tabanlı güvenli webhook'lar ve API uç noktaları aracılığıyla yönettiği için, telefonunuzun yalnızca kararlı bir Wi-Fi veya hücresel veri bağlantısına ihtiyacı vardır. Bu sayede, mini PC'niz bir sunucu dolabında saklı olsa bile, telefonunuzu hücresel çekim gücünün en iyi olduğu bir yere yerleştirebilirsiniz.

Çift SIM ve Çoklu Cihaz Desteğinden Yararlanma

Birden fazla şubesi olan bir işletmeniz varsa veya işlemsel OTP trafiğini pazarlama duyurularından ayırmak istiyorsanız, tek bir MySMSGate hesabına sınırsız sayıda Android telefon bağlayabilirsiniz. Telefonunuz çift SIM kartı destekliyorsa, platform her giden API çağrısı için hangi SIM yuvasından gönderim yapılacağını programlı olarak seçmenize olanak tanır ve böylece yönlendirme ile yerel operatör tarifeleri üzerinde tam kontrol sahibi olmanızı sağlar.

3. Adım: OTP Sunucu Kodunu Yazın

Artık donanımınız bağlı olduğuna göre, tek kullanımlık şifreler üretmek, saklamak ve göndermek için arka uç mantığını yazabilirsiniz. Aşağıda, güvenli bir 6 haneli OTP üretmeyi, bunu bir son kullanma zaman damgasıyla bellekte (in-memory) saklamayı ve MySMSGate REST API aracılığıyla göndermeyi gösteren eksiksiz ve hafif bir Node.js örneği yer almaktadır.

const axios = require('axios');

// In-memory store for demonstration (use Redis in production)
const otpCache = new Map();

const MYSMSGATE_API_URL = 'https://mysmsgate.net/api/v1/send';
const API_KEY = 'YOUR_MYSMSGATE_API_KEY';

async function generateAndSendOTP(phoneNumber) {
  // Generate a cryptographically secure 6-digit code
  const otp = Math.floor(100000 + Math.random() * 900000).toString();
  const expiresAt = Date.now() + 5 * 60 * 1000; // 5 minutes expiry

  // Store OTP details
  otpCache.set(phoneNumber, { otp, expiresAt });

  // Prepare payload for MySMSGate API
  const payload = {
    to: phoneNumber,
    message: `Your verification code is ${otp}. It will expire in 5 minutes.`
  };

  try {
    const response = await axios.post(MYSMSGATE_API_URL, payload, {
      headers: {
        'Authorization': `Bearer ${API_KEY}`,
        'Content-Type': 'application/json'
      }
    });
    console.log('OTP dispatched successfully:', response.data);
    return { success: true };
  } catch (error) {
    console.error('Failed to dispatch OTP via MySMSGate:', error.response ? error.response.data : error.message);
    return { success: false, error: 'SMS gateway communication failure' };
  }
}

Bu sade REST API entegrasyonu, mesajı göndermek için yalnızca tek bir POST isteği gerektirir. Sürdürülmesi gereken karmaşık SDK'lar yoktur, bu da standart entegrasyon dokümantasyonumuzu kullanarak bu mantığı Python, Go, PHP veya Ruby'ye aktarmayı kolaylaştırır.

4. Adım: Doğrulama ve Webhook Takibi Ekleme

OTP'yi göndermek işin sadece yarısıdır; sunucunuz aynı zamanda kullanıcının girdisini doğrulamalı ve SMS'in gerçekten cihazına ulaşıp ulaşmadığını takip etmelidir. Kullanıcı kodu gönderdiğinde bunu doğrulamak için, mini PC arka ucunuzda basit bir doğrulama uç noktası uygulayın:

function verifyOTP(phoneNumber, userSubmittedCode) {
  const record = otpCache.get(phoneNumber);
  if (!record) {
    return { verified: false, reason: 'No OTP requested or code expired' };
  }

  if (Date.now() > record.expiresAt) {
    otpCache.delete(phoneNumber);
    return { verified: false, reason: 'OTP has expired' };
  }

  if (record.otp === userSubmittedCode) {
    otpCache.delete(phoneNumber); // Clear code after successful use
    return { verified: true };
  } 

  return { verified: false, reason: 'Incorrect code' };
}

Teslimat durumunu gerçek zamanlı olarak izlemek için MySMSGate panelinizde bir webhook URL'si yapılandırın. Android telefonunuz mesajı gönderip operatörden şebeke teslim alındı raporu aldığında, MySMSGate yerel sunucunuza bir durum güncellemesi gönderecektir. Geçersiz bir numara veya operatör hatası nedeniyle bir mesaj teslim edilemezse, hesap bakiyeniz otomatik olarak iade edilir; böylece teslim edilmeyen doğrulama girişimleri için asla ödeme yapmazsınız.

Sunucuyu Genişletme: Yoklama Takibi ve Uyarılar

SMS OTP sunucusu yapılandırmalarını nasıl oluşturacağınızı anladıktan sonra, aynı arka uç altyapısını diğer iş akışlarını yönetmek için kolayca yeniden uyarlayabilirsiniz. Örneğin, yerel eğitim merkezleri, etüt merkezleri ve spor kulüpleri sıklıkla velilere otomatik SMS gönderen yoklama takibinin nasıl oluşturulacağını sorarlar.

Dijital yoklama listenizi veya giriş kioskunu mini PC arka ucunuza bağlayarak otomatik giden uyarıları tetleyebilirsiniz. Bir öğrenci kimlik kartını okuttuğunda veya giriş yaptığında, sisteminiz özelleştirilmiş bir mesaj göndermek için anında MySMSGate API'sini çağırabilir: "Merhaba, çocuğunuz saat 15:15'te etüt merkezine güvenle ulaştı."

Benzer şekilde, oto tamirhaneleri, diş klinikleri ve kuaför salonları gibi yerel hizmet işletmeleri, rezervasyon onayları, randevu hatırlatıcıları ve "teslime hazır" bildirimleri için SMS uyarı şablonları oluşturmak üzere bu kurulumu kullanabilir. Bu uyarıları kendi SIM kartınızdan gönderdiğiniz için müşteriler doğrudan SMS'e yanıt verebilir. Bu yanıtlar gerçek zamanlı olarak MySMSGate web panelinize iletilir ve telefonunuzu elinize almadan tarayıcınızdan iki yönlü sohbetler sürdürmenize olanak tanır.

Sıkça Sorulan Sorular (SSS)

Kendi yerel SMS ağ geçidinizi ve OTP sunucunuzu kurma konusundaki en yaygın soruların yanıtlarını bulun.

Bir telefon ve mini PC kullanarak yerel olarak kendi SMS API'mi nasıl oluşturabilirim?

Yerel bir SMS API'si oluşturmak için, uygulama arka ucunuzu çalıştıran bir mini PC (Raspberry Pi veya Intel NUC gibi) kurun ve bunu MySMSGate uygulamasını çalıştıran bir Android telefonla eşleştirin. Mini PC, SMS yüklerini (payload) oluşturur ve bunları MySMSGate REST API uç noktasına gönderir. Bulut ağ geçidi, isteği güvenli anlık bildirimler aracılığıyla bağlı Android telefonunuza iletir ve telefonun fiziksel SIM kartı SMS'i yerel olarak gönderir.

OTP göndermek için operatör onayına veya 10DLC kaydına ihtiyacım var mı?

Hayır. MySMSGate mesajları kendi kişisel veya kurumsal Android telefonunuz ve SIM kartınız üzerinden yönlendirdiği için, A2P 10DLC kaydı yaptırmanıza, marka doğrulaması yapmanıza veya operatör onaylarını beklemenize gerek yoktur. Uygulamayı kurduktan hemen sonra işlemsel uyarılar ve doğrulama kodları göndermeye başlayabilirsiniz.

MySMSGate başarısız SMS teslimatını nasıl yönetir?

Şebeke sorunları, geçersiz bir telefon numarası veya SIM kartınızda operatör kredisinin olmaması nedeniyle bir SMS teslim edilemezse, MySMSGate başarısızlık durumunu webhook'lar aracılığıyla takip eder ve $0.02 API ücretini hesap bakiyenize otomatik olarak iade eder. Yalnızca cihazınızdan başarıyla gönderilen mesajlar için ödeme yaparsınız.

OTP mesajlarını yönlendirmek için çift SIM kart kullanabilir miyim?

Evet. MySMSGate Android uygulaması çift SIM'li cihazları tam olarak destekler. API'mize bir POST isteği yaparken, mesajı göndermek için hangi SIM yuvasının (SIM 1 veya SIM 2) kullanılması gerektiğini programlı olarak tanımlayabilir, böylece yerel operatör tarifelerine göre yönlendirmeyi optimize edebilirsiniz.