API Kullanım Rehberi

Kapsamlı SMS API dokümantasyonu, kod örnekleri, güvenlik rehberi ve en iyi uygulamalar. Tüm programlama dilleri için detaylı entegrasyon kılavuzu ve pratik örnekler.

  • RESTful API endpoint'leri ve parametreler
  • Kimlik doğrulama ve güvenlik protokolleri
  • Webhook entegrasyonu ve doğrulama
  • Rate limiting ve hata yönetimi stratejileri
  • Çoklu dil desteği (PHP, Python, JavaScript, Java, C#)
  • Gerçek zamanlı raporlama ve analitik
  • Bulk SMS gönderimi ve optimizasyon
  • Test ortamı ve sandbox kullanımı
API Rehberi

Kod Örnekleri

Tüm popüler programlama dilleri için hazır kod örnekleri ve entegrasyon kılavuzu

PHP - cURL ile SMS Gönderimi

Basit ve güvenli SMS gönderimi için cURL kullanımı

$ch = curl_init('https://api.metin2oyunsms.com/v1/sms/send');
curl_setopt_array($ch,[
  CURLOPT_RETURNTRANSFER=>1,
  CURLOPT_POST=>1,
  CURLOPT_HTTPHEADER=>[
    'Authorization: Bearer '.getenv('API_KEY'),
    'Content-Type: application/json'
  ],
  CURLOPT_POSTFIELDS=>json_encode([
    'to'=>'+905555555555',
    'message'=>'Merhaba Dünya',
    'sender'=>'ANADOLU'
  ])
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($httpCode === 200) {
    $data = json_decode($response, true);
    echo "SMS ID: " . $data['id'];
} else {
    echo "Hata: " . $response;
}
Node.js - Async/Await ile SMS

Modern JavaScript ile asenkron SMS gönderimi

const fetch = require('node-fetch');

async function sendSMS() {
  try {
    const response = await fetch('https://api.metin2oyunsms.com/v1/sms/send',{
    method:'POST',
    headers:{
      'Authorization':`Bearer ${process.env.API_KEY}`,
      'Content-Type':'application/json'
    },
      body:JSON.stringify({
        to:'+905555555555',
        message:'Merhaba Dünya',
        sender:'ANADOLU'
      })
    });
    
    if (response.ok) {
      const data = await response.json();
      console.log('SMS ID:', data.id);
    } else {
      console.log('Hata:', await response.text());
    }
  } catch (error) {
    console.error('Hata:', error);
  }
}

sendSMS();
Python - Requests ile SMS

Python requests kütüphanesi ile SMS entegrasyonu

import requests
import os

def send_sms():
    url = "https://api.metin2oyunsms.com/v1/sms/send"
    headers = {
        "Authorization": f"Bearer {os.getenv('API_KEY')}",
        "Content-Type": "application/json"
    }
    data = {
        "to": "+905555555555",
        "message": "Merhaba Dünya",
        "sender": "ANADOLU"
    }
    
    try:
        response = requests.post(url, headers=headers, json=data)
        if response.status_code == 200:
            result = response.json()
            print(f"SMS ID: {result['id']}")
        else:
            print(f"Hata: {response.text}")
    except Exception as e:
        print(f"Hata: {e}")

send_sms()
Java - HttpClient ile SMS

Java 11+ HttpClient ile modern SMS entegrasyonu

import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

public class SMSClient {
    public static void main(String[] args) {
        HttpClient client = HttpClient.newHttpClient();
        
        String json = "{\"to\":\"+905555555555\",\"message\":\"Merhaba Dünya\",\"sender\":\"ANADOLU\"}";
        
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://api.metin2oyunsms.com/v1/sms/send"))
            .header("Authorization", "Bearer " + System.getenv("API_KEY"))
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(json))
            .build();
            
        try {
            HttpResponse response = client.send(request, 
                HttpResponse.BodyHandlers.ofString());
            System.out.println("Response: " + response.body());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Webhook Entegrasyonu ve En İyi Uygulamalar

Gerçek zamanlı bildirimler ve güvenli API kullanımı için önemli bilgiler

Webhook Doğrulama ve Güvenlik

HMAC-SHA256 ile webhook imzalarını doğrulayın ve güvenliği sağlayın.

  • İmzalı başlık ve gövde HMAC hesaplaması
  • Timestamp kontrolü ve replay attack koruması
  • Webhook URL'inizi güvenli bir şekilde kaydedin
  • Gerçek zamanlı SMS durumu bildirimleri
  • Hata ve başarı raporları otomatik iletimi
En İyi Uygulamalar ve Optimizasyon

Güvenli ve verimli API kullanımı için önemli öneriler.

  • Idempotent istekler ve retry stratejileri
  • HTTP zaman aşımı ve exponential backoff
  • Günlükleme ve hata izleme sistemleri
  • Rate limiting uygulama ve monitoring
  • API key'leri güvenli saklama yöntemleri
  • Bulk SMS için batch işleme optimizasyonu
API Güvenliği

HTTPS kullanımı, input validation ve güvenli header'lar

Performans

Connection pooling, async processing ve batch operations

Monitoring

Error logging, analytics ve real-time monitoring

API Endpoint'leri ve Parametreler

Tüm API endpoint'leri, parametreler ve kullanım örnekleri

POST /api/v1/sms/send

SMS gönderimi için ana endpoint

  • to: Alıcı telefon numarası (E.164 formatında)
  • message: SMS içeriği (maksimum 160 karakter)
  • sender: Gönderici adı (onaylanmış olmalı)
  • scheduled_at: Zamanlanmış gönderim (opsiyonel)
GET /api/v1/sms/status/{id}

SMS durumu sorgulama endpoint'i

  • id: SMS ID'si (gönderim sonrası alınır)
  • Response: delivered, pending, failed
  • delivered_at: Teslimat zamanı
  • error_message: Hata mesajı (varsa)
GET /api/v1/reports

Detaylı raporlama ve analitik

  • date_from: Başlangıç tarihi
  • date_to: Bitiş tarihi
  • status: Durum filtresi
  • Response: İstatistikler ve detaylar
POST /api/v1/webhooks

Webhook URL kaydetme

  • url: Webhook URL'iniz
  • events: Dinlenecek olaylar
  • secret: İmza doğrulama anahtarı
  • active: Aktif/pasif durumu

Hata Kodları ve Çözümleri

Yaygın hata kodları ve çözüm önerileri

4xx Hata Kodları
  • 400: Geçersiz istek parametreleri
  • 401: Yetkilendirme hatası
  • 403: Erişim reddedildi
  • 404: Endpoint bulunamadı
  • 429: Rate limit aşıldı
5xx Hata Kodları
  • 500: Sunucu hatası
  • 502: Bad Gateway
  • 503: Servis kullanılamıyor
  • 504: Gateway timeout
Başarı Kodları
  • 200: İşlem başarılı
  • 201: Kaynak oluşturuldu
  • 202: İşlem kabul edildi