Geliştiriciler

POST/v3/smslength

SMS kodlamasını ve parça sayısını hesaplayın

Mesajın son hâlini göndermeden veya teslimat ücretlerini tahmin etmeden analiz edin.

Bu sayfada
  1. Göndereceğiniz mesaj metnini olduğu gibi analiz edin
  2. İstek
  3. Yanıt
  4. Kodlama ve parça sınırları
  5. Hatalar ve boş metin
  6. Göndermeden önce sonucu kullanın

Göndereceğiniz mesaj metnini olduğu gibi analiz edin

Göndermeyi planladığınız metnin kodlamasını, kodlanmış uzunluğunu ve SMS parça sayısını hesaplayın. Bu uç nokta SMS göndermez, bir yönlendirme yolu ayırmaz veya teslimat için fiyat teklifi döndürmez. Gönderim iş akışınızın eklediği alt bilgi, bağlantı veya ileti almayı reddetme ifadeleri de dâhil olmak üzere metnin son hâlini eksiksiz gönderin.

İstek

Etkin API hesabınızı ve bu hesap için izin verilen kaynak IP adresini kullanarak kimlik doğrulaması yapın. Kimlik bilgilerini sunucu tarafında gizli bilgi depolama alanında saklayın. UTF-8 kodlamalı bir dizeyi text alanında gönderin; örnekte ortam değişkenleri kullanılmıştır.

curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
  --data-urlencode 'text=Your message here' \
  https://api.multitel.net/v3/smslength

Form biçiminde kodlanmış girdi desteklenir. Örneğin şu JSON nesnesi {"text":"Your message here"} de form veya sorgu alanları sağlanmadığında kabul edilir. Mesaj metninin URL içinde görünmemesi için POST yöntemini tercih edin. Hem form hem de sorgu girdisi varsa form kullanılır. İstek biçimlerini karıştırmayın.

Yanıt

{
  "status": {
    "code": "200",
    "msg": ""
  },
  "response": {
    "charset": 0,
    "encoding": "GSM-7",
    "count": 1,
    "parts": 1,
    "chars": 17,
    "units": 17,
    "single_limit": 160,
    "multipart_limit": 153
  }
}
Hesaplama sonucu alanları
AlanAnlamı
charset0, GSM-7 için; 2, UTF-16 için kullanılır.
encodingGSM-7 veya UTF-16.
parts, countHesaplanan SMS parça sayısı için kullanılan iki ad. Boş metin için ikisi de sıfırdır.
units, charsKodlanmış birimler için kullanılan iki ad. Bu birimlerin sayısı, görünen karakterlerin sayısına her zaman eşit değildir.
single_limitSeçilen kodlamada tek bir parça için kodlanmış birim sınırı.
multipart_limitBirleştirme için gereken ek yük hesaba katıldıktan sonra her parça için kullanılan kodlanmış birim sınırı.

Kodlama ve parça sınırları

Hesaplayıcının kullandığı sınırlar
KodlamaTek parçaÇok parçalı mesajdaki her bir parça
GSM-7160 septet153 septet
UTF-1670 kod birimi67 kod birimi

GSM-7 genişletme karakterlerinden ^, süslü parantezler, köşeli parantezler, ters eğik çizgi, dikey çizgi, tilde ve avro işareti gibi karakterler iki septet kullanır. GSM-7 dışındaki bir karakter, mesajın tamamının UTF-16 ile sayılmasına neden olur. Temel Çok Dilli Düzlem dışındaki bir emoji iki UTF-16 birimi kullanır; görünür bir emoji dizisi birden fazla kod noktası içerebilir.

Örneğin, 160 sıradan GSM-7 harfi tek parçaya sığar, 161 harf ise iki parça gerektirir. Seksen ^ karakteri 160 birim kullanır ve tek parçaya sığar; seksen bir tanesi 162 birim kullanır ve iki parça gerektirir. BMP dışındaki otuz beş basit emoji 70 UTF-16 birimi kullanır ve tek parçaya sığar; otuz altı tanesi 72 birim kullanır ve iki parça gerektirir. Birleştirici işaretler ve birbirine bağlanmış emojiler bu sayıları değiştirebilir.

Hatalar ve boş metin

text alanının eksik olması, skaler bir değer yerine dizi/nesne verilmesi veya geçersiz UTF-8 kullanılması durumunda API kodu 403 döndürülür. JSON yanıtındaki status.code ve status.msg alanlarını HTTP durumuyla birlikte okuyun; bu uç nokta kodu dize olarak döndürür. Boş bir dize geçerlidir ve sıfır birim ile sıfır parça döndürür.

Göndermeden önce sonucu kullanın

İncelenen hesaplayıcıda mesaj gönderme, operatöre çağrı yapma veya hesaptan ücret düşme işlemi bulunmaz. Sonuç, gönderilen metnin analizidir; teslimat garantisi veya nihai fatura değildir. Gönderim sırasında hedefe göre tarifeler, operatör ücretleri, kampanya gereklilikleri ve ek metin dönüşümleri söz konusu olabilir. Mesajı değiştirdikten sonra yeniden hesaplayın, ardından onaylanmış gönderim iş akışını ve hesabınızın güncel fiyatlandırmasını kullanın.