Görünmez reCAPTCHA

Bu sayfada, web sayfanızdaki görünmez reCAPTCHA'yı nasıl etkinleştireceğiniz ve özelleştireceğiniz açıklanmaktadır.

Görünmez reCAPTCHA'yı çağırmak için aşağıdakilerden birini yapabilirsiniz:

Görünmeyen reCAPTCHA'yı nasıl özelleştireceğinizi öğrenmek için Yapılandırmalar bölümüne bakın. Örneğin, dili veya rozet konumunu belirtmek isteyebilirsiniz.

Kullanıcının CAPTCHA'yı başarıyla çözüp çözmediğini kontrol etmek için Kullanıcı yanıtını doğrulama başlıklı makaleye bakın.

Meydan okumayı otomatik olarak bir düğmeye bağla

Görünmez reCAPTCHA widget'ını sayfanızda kullanmanın en kolay yöntemi, gerekli JavaScript kaynağını dahil etmek ve html düğmenize birkaç özellik eklemektir. Gerekli özellikler; "g-recaptcha" sınıf adı, data-sitekey özelliğinde site anahtarınız ve data-callback özelliğinde captcha'nın tamamlanmasını ele almak için bir JavaScript geri çağırmasının adıdır.

<html>
  <head>
    <title>reCAPTCHA demo: Simple page</title>
     <script src="https://www.google.com/recaptcha/api.js" async defer></script>
     <script>
       function onSubmit(token) {
         document.getElementById("demo-form").submit();
       }
     </script>
  </head>
  <body>
    <form id="demo-form" action="?" method="POST">
      <button class="g-recaptcha" data-sitekey="your_site_key" data-callback="onSubmit">Submit</button>
      <br/>
    </form>
  </body>
</html>

Komut dosyası, HTTPS protokolü kullanılarak yüklenmelidir ve sayfanın herhangi bir noktasından kısıtlama olmaksızın eklenebilir.

Sorguyu programatik olarak bir düğmeye bağlama veya sorgulamayı çağırma

Bağlamanın ertelenmesi, onload geri çağırma işlevinizi belirterek ve JavaScript kaynağına parametreler ekleyerek gerçekleştirilebilir. Bu, normal reCAPTCHA sorgulaması ile aynı şekilde çalışır.

Programatik olarak meydan okumayı çağırın.

reCAPTCHA doğrulamasının programatik olarak çağrılması, sorgulamanın data-size="invisible" özelliğine sahip bir div içinde oluşturulması ve programatik olarak yürütülmesinin çağrılmasıyla gerçekleştirilebilir.

  1. data-size="invisible" ile bir div oluşturun.

    <div class="g-recaptcha"
          data-sitekey="_your_site_key_"
          data-callback="onSubmit"
          data-size="invisible">
    </div>
    
  2. JavaScript yönteminden grecaptcha.execute çağrısı yapın.

    grecaptcha.execute();
    

    Geri çağırmanız yürütüldüğünde, JavaScript API'sından grecaptcha.render yöntemini çağırabilirsiniz.

Yapılandırma

JavaScript kaynağı (api.js) parametreleri

Parametre Değer Açıklama
onload İsteğe bağlı. Tüm bağımlılıklar yüklendikten sonra yürütülecek geri çağırma işlevinizin adı.
oluşturmak explicit
onload
İsteğe bağlı. Widget'ın açık bir şekilde oluşturulup oluşturulmayacağı. Varsayılan olarak onload seçeneği kullanılır. Bu işlem widget'ı bulduğu ilk g-recaptcha etikette oluşturur.
hl Dil kodlarına bakın İsteğe bağlı. Widget'ı belirli bir dilde oluşturmaya zorlar. Dil belirtilmezse kullanıcının dilini otomatik olarak algılar.

g-recaptcha etiketi özellikleri ve grecaptcha.render parametreleri

g-recaptcha etiketi özelliği grecaptcha.render parametresi Değer Varsayılan Açıklama
data-sitekey site anahtarı Site anahtarınız.
veri rozeti rozet sağ alt sol alt satır içi sağ alt İsteğe bağlı. reCAPTCHA rozetini yeniden konumlandırın. "satır içi" dosyayı CSS ile konumlandırmanızı sağlar.
veri boyutu beden görünmez İsteğe bağlı. Bir div öğesine bağlı görünmez bir widget oluşturmak için kullanılır ve programatik olarak yürütülür.
data-tabindex sekme dizini 0 İsteğe bağlı. Ödevin sekme dizini. Sayfanızdaki diğer öğeler tabindex kullanıyorsa, kullanıcının gezinmesini kolaylaştırmak için sekme dizini ayarlanmalıdır.
data-callback geri çağırma İsteğe bağlı. Kullanıcı başarılı bir yanıt gönderdiğinde yürütülen geri çağırma işlevinizin adı. g-recaptcha-response jetonu, geri çağırmanıza iletilir.
data-expired-callback expired-callback İsteğe bağlı. reCAPTCHA yanıtının süresi dolduğunda ve kullanıcının yeniden doğrulama yapması gerektiğinde yürütülen geri çağırma işlevinizin adı.
data-error-callback hata-geri-arama İsteğe bağlı. reCAPTCHA bir hatayla (genellikle ağ bağlantısı) karşılaştığında yürütülen geri çağırma işlevinizin adı ve bağlantı yeniden kurulana kadar devam edemez. Burada bir işlev belirtirseniz kullanıcıya tekrar denemesi gerektiğini bildirmek sizin sorumluluğunuzdadır.
ayrı false İsteğe bağlı. Eklenti sahiplerinin sayfadaki mevcut reCAPTCHA kurulumlarına müdahale etmemesi için. Doğru ise bu reCAPTCHA örneği ayrı bir kimlik alanının parçası olur.

JavaScript API

Yöntem Açıklama
grecaptcha.render(
kapsayıcı,
parametreleri ile
devral
)
Kapsayıcıyı bir reCAPTCHA widget'ı olarak oluşturur ve yeni oluşturulan widget'ın kimliğini döndürür.
. kapsayıcı
reCAPTCHA widget'ını oluşturacak HTML öğesi. Kapsayıcının kimliğini (dize) veya DOM öğesinin kimliğini belirtin.
. parametreler
Anahtar=değer çiftleri olarak parametreler içeren bir nesne (ör. {"siteanahtarı": "sitenizin_anahtarı", "theme": "light"}. grecaptcha.render parametrelerine bakın.
. devral
Karşılık gelen parametre belirtilmemişse öğedeki mevcut data-* özelliklerini kullanın. Parametreler özelliklere göre öncelikli olur.
grecaptcha.execute(
opt_widget_id
)
reCAPTCHA kontrolünü programatik olarak çağırın. Görünmez reCAPTCHA bir div öğesindeyse kullanılır ekleyebilirsiniz.
. opt_widget_id
İsteğe bağlı widget kimliği, belirtilmediyse varsayılan olarak oluşturulan ilk widget'tır.
grecaptcha.reset(
opt_widget_id
)
reCAPTCHA widget'ını sıfırlar.
. opt_widget_id
İsteğe bağlı widget kimliği, belirtilmediyse varsayılan olarak oluşturulan ilk widget'tır.
grecaptcha.getResponse(
opt_widget_id
)
reCAPTCHA widget'ının yanıtını alır.
. opt_widget_id
İsteğe bağlı widget kimliği, belirtilmediyse varsayılan olarak oluşturulan ilk widget'tır.

Örnekler

Bir onload geri çağırmasından sonra açık oluşturma

<html>
  <head>
    <title>reCAPTCHA demo: Explicit render after an onload callback</title>
    <script>
        var onSubmit = function(token) {
          console.log('success!');
        };

        var onloadCallback = function() {
          grecaptcha.render('submit', {
            'sitekey' : 'your_site_key',
            'callback' : onSubmit
          });
        };
    </script>
  </head>
  <body>
    <form action="?" method="POST">
      <input id="submit" type="submit" value="Submit">
    </form>
    <script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit"
        async defer>
    </script>
  </body>
</html>

İstemci tarafı doğrulamasından sonra görünmez reCAPTCHA sorgulaması çağrılır.

<html>
  <head>
  <script>
    function onSubmit(token) {
      alert('thanks ' + document.getElementById('field').value);
    }

    function validate(event) {
      event.preventDefault();
      if (!document.getElementById('field').value) {
        alert("You must add text to the required field");
      } else {
        grecaptcha.execute();
      }
    }

    function onload() {
      var element = document.getElementById('submit');
      element.onclick = validate;
    }
  </script>
  <script src="https://www.google.com/recaptcha/api.js" async defer></script>
  </head>
  <body>
    <form>
      Name: (required) <input id="field" name="field">
      <div id="recaptcha" class="g-recaptcha"
          data-sitekey="_your_site_key_"
          data-callback="onSubmit"
          data-size="invisible"></div>
      <button id="submit">submit</button>
    </form>
    <script>onload();</script>
  </body>
</html>