esaj platform için formatlandığında, SMS tek kullanımlık kodlar otomatik olarak doldurulabilir. Android'de SMS Retriever API; 140 bayttan uzun olmayan, kodu içeren ve uygulamanızı tanımlayan 11 karakterli bir özet (hash) barındıran bir mesajı okur. iOS ve Safari'de, giriş alanını autocomplete="one-time-code" ile işaretleyin (yerel uygulamalarda textContentType oneTimeCode) ve klavye kodu önerir. Web'de ise WebOTP API, son satırı @your-domain #code olan bir mesajı okur. Tek bir şablon her üçünü de karşılayabilir.
Önemli çıkarımlar
- Otomatik doldurma, kullanıcıların bir kodu alma ve yazma aşamaları arasında uygulama değiştirirken yaşadığı kaybı ortadan kaldırır.
- Android SMS Retriever: en fazla 140 baytlık, kodu ve 11 karakterli uygulama özetinizi (hash) içeren mesaj; SMS iznine gerek yoktur.
- Android SMS User Consent: özet (hash) içermez; mesaj, en az bir rakam içeren 4–10 karakterli alfanümerik bir kod içermelidir; kullanıcı izin vermek için dokunur.
- iOS ve Safari: giriş alanında autocomplete="one-time-code"; alan adına bağlı son satır, Safari'nin önerisini etkinleştirir.
- WebOTP: son satır @domain #code, şema, port veya yol içermez; Android ve masaüstü Chrome'da desteklenir.
OTP otomatik doldurma neden önemlidir?
"kod gönderildi" ile "kod girildi" arasındaki her adım kullanıcı kaybına neden olur: mesajlar uygulamasına geçiş yapmak, altı haneli rakamı ezberlemek, tekrar uygulamaya dönmek. Otomatik doldurma bu süreci tek bir dokunuşa dönüştürür. Ayrıca yazım hatalarını azaltır ve alan adına bağlı kodlar sayesinde, bir kullanıcıyı benzer görünümlü bir sitede kod girmeye ikna etmeyi zorlaştırır. Bu özellik iletimi düzeltmez: kodun yine de hızlı bir şekilde ulaşması gerekir, bu nedenle otomatik doldurmayı hızlı bir rota ve yedekli yapı ile eşleştirin. OTP iletim en iyi uygulamalarına göz atın.
Android SMS Retriever API nasıl çalışır?
SMS Retriever API sayesinde Android uygulamanız, SMS okuma izni istemeden doğrulama mesajını alabilir. Google dokümantasyonu mesaj için üç kural belirler:
- 140 bayttan uzun olmamalı;
- uygulamanın sunucunuza geri gönderdiği tek kullanımlık kodu içermeli;
- uygulamanızı tanımlayan 11 karakterli bir hash dizisi içermelidir.
Hash, uygulamanızın paket adı ve imzalama sertifikasından hesaplanır: paket adını sertifikanın hex formuna ekleyin, SHA-256 işlemini yapın, base64 ile kodlayın ve ilk 11 karakteri alın. Debug ve release sürümleri genellikle farklı anahtarlarla imzalandığı için farklı hash değerlerine sahiptir. Sunucunuz, mesajı oluştururken doğru hash değerini ekler.
SMS User Consent API nedir?
Örneğin şablonun diğer kanallarla paylaşılması nedeniyle mesajın içine bir uygulama hash değeri ekleyemediğiniz durumlarda, Android'in SMS User Consent API özelliği kullanıcıya uygulamanızın bir mesajı okumasına izin veren bir istem gösterir. Google uyarınca mesaj, en az bir rakam içeren 4–10 karakterlik alfanümerik bir dizim içermeli ve eğer bir gönderici belirttiyseniz, o göndericiden gelmelidir. API başlatıldıktan sonra yaklaşık beş dakika boyunca dinlemede kalır ve ardından zaman aşımına uğrar.
iOS'ta OTP otomatik doldurma nasıl çalışır?
iOS, klavyeden güvenlik kodu otomatik doldurma imkanı sunar. Yerel bir uygulamada, metin alanının textContentType değerini oneTimeCode olarak ayarlayın; bir web sayfasında ise girişe autocomplete="one-time-code" ekleyin. Eşleşen bir SMS geldiğinde, kod klavyenin üzerinde görünür ve kullanıcı ona dokunur. Safari, WebOTP JavaScript API özelliğini uygulamaz; ancak Chrome'un WebOTP dokümantasyonu, autocomplete anotasyonu ile birlikte SMS aşağıdaki alan adına bağlı formatı izliyorsa varsayılan klavyenin kodu önerdiğini belirtmektedir (iOS 14 ve macOS Big Sur veya daha yeni sürümler).
WebOTP mesaj formatı nedir?
WebOTP API özelliği, bir web sayfasının navigator.credentials.get({ otp: { transport: ['sms'] } }) ile kodu okumasına olanak tanır. SMS insan tarafından okunabilir bir metinle başlamalı ve son satırı şu formda olmalıdır:
Your BroadNet code is 482913. @www.example.com #482913- Son satır @ ile ve kodu talep eden sayfanın alan adı ile başlar.
- Bir adet boşluk, ardından # ve kod.
- Alan adında protokol, port veya yol bulunmamalıdır ve içinde boşluk olmamalıdır.
- Mesajı okuyan kişiler için, insan tarafından okunabilir kısım kodu da içermelidir.
Tarayıcıların WebOTP özelliği olmasa bile kodu sunmaya devam edebilmesi için girişte her zaman autocomplete="one-time-code" değerini de tutun.
Tek bir SMS şablonu her platformda çalışabilir mi?
Evet, Android bayt sınırları içinde kalındığı ve satırlar doğru sırada olduğu sürece çalışabilir. Birleşik bir şablon örneği:
Your BroadNet code is 482913. Do not share it.FA+9qCX9VSu @www.example.com #482913| Platform | Kodu ne okur | Mesajın gereksinimleri |
|---|---|---|
| Android uygulaması | SMS Retriever API | Kod ve 11 karakterlik uygulama hash değeriniz; en fazla 140 bayt |
| Android uygulaması (hash yok) | SMS User Consent API | En az bir rakam içeren, 4–10 karakterli alfanümerik bir kod |
| iOS uygulaması | Güvenlik kodu otomatik doldurma (oneTimeCode) | Tanınabilir bir kod; alan adına bağlı hat önerilir |
| Safari (iOS, macOS) | autocomplete="one-time-code" | Son satır @domain #code |
| Chrome (Android, masaüstü) | WebOTP API | Son satır @domain #code |
Gösterilen hash bir yer tutucudur: kendi uygulamanızın değerini kullanın. Şablonun tek bir segment olarak kalması için GSM-7 karakter setini kullanın; bir emoji veya aksanlı harf tüm mesajı Unicode'a dönüştürür, bu da kapasiteyi yarıya indirir ve 140 baytlık bütçeyi aşmanıza neden olabilir. SMS kodlama ve segmentasyon hakkında bilgi alın.
Bu mesajlar BroadNet ile nasıl gönderilir?
Mesajı kendi sunucunuzda oluşturun ve OTP API veya SMS API aracılığıyla gönderin; yeni satırlar mesaj metninin bir parçasıdır. BroadNet'in OTP ürünü, bir kod ulaşmadığında SMS, WhatsApp, ses ve Flash Call üzerinden yedekleme yapar ve MyOTP.App, tek bir hesaptan SMS, WhatsApp veya Telegram yoluyla kodlar gönderir. Tüm akış için bir OTP akışının nasıl oluşturulacağını ve çok kanallı OTP doğrulama kılavuzumuzu okuyun.
Sıkça sorulan sorular
Android uygulamam neden OTP SMS'i okumuyor?
Genellikle mesajdaki uygulama hash değeri derleme ile eşleşmez (debug ve release anahtarları farklıdır), mesaj 140 bayttan uzundur veya dinleyici mesaj geldikten sonra başlamıştır.
Android'de kodları otomatik doldurmak için SMS iznine ihtiyacım var mı?
Hayır. SMS Retriever API ve SMS User Consent API'nin her ikisi de SMS okuma izni olmadan çalışır.
iOS üzerinde OTP otomatik doldurmayı nasıl etkinleştiririm?
Yerel bir uygulamada textContentType değerini oneTimeCode olarak ayarlayın veya bir web sayfasındaki giriş alanına autocomplete="one-time-code" ekleyin.
WebOTP SMS formatı nedir?
Önce insan tarafından okunabilir metin, ardından son satırda @ işareti ile alan adınız, bir boşluk, # işareti ve kod gelmelidir; örneğin @www.example.com #482913.
WebOTP Safari'de çalışır mı?
Safari WebOTP JavaScript API'sini desteklemez ancak autocomplete="one-time-code" ile klavyesi, alan adına bağlı formatta gelen mesajlardaki kodları önerebilir.
Android, iOS ve web için tek bir şablon kullanabilir miyim?
Evet: metindeki kod, kendi satırındaki uygulama hash değeri ve en sonda alan adına bağlı satır; tamamı 140 bayt sınırları içinde olmalıdır.
Platform kuralları, 28 Eylül 2026 tarihinde Google'in SMS Retriever ve SMS User Consent dokümantasyonunda (developers.google.com) ve Chrome'un WebOTP dokümantasyonunda (developer.chrome.com) okunmuştur. Editör standartlarımıza göz atın.
