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:
- Meydan okumayı otomatik olarak bir düğmeye bağlama veya
- Meydan okumayı programlı olarak bir düğmeye bağlama veya
- Sorguyu programatik olarak çağırma
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 bölümüne bakın.
Yarışmayı bir düğmeye otomatik olarak bağlama
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ğindeki site anahtarınız ve data-callback
özelliğindeki reCAPTCHA'nın tamamlanmasını işleyen bir JavaScript geri çağırma işlevinin 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.
Yarışmayı programatik olarak bir düğmeye bağlayın veya yarışmayı çağırın.
Bağlamanın ertelenmesi, onload geri çağırma işlevinizi belirterek ve JavaScript kaynağına parametreler ekleyerek gerçekleştirilebilir. Bu işlem, normal reCAPTCHA testi ile aynı şekilde çalışır.
İsteği programatik olarak çağırın.
reCAPTCHA doğrulamasını programatik olarak çağırmak için testi data-size="invisible"
özelliğine sahip bir div içinde oluşturabilir ve execute işlevini programatik olarak çağırabilirsiniz.
data-size="invisible"
ile bir div oluşturun.<div class="g-recaptcha" data-sitekey="_your_site_key_" data-callback="onSubmit" data-size="invisible"> </div>
Bir JavaScript yönteminden grecaptcha.execute'i çağırı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ı. | |
render |
explicit onload |
İsteğe bağlı. Widget'ın açıkça 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. Belirtilmemişse 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 |
sitekey | Site anahtarınız. | ||
data-badge |
rozet | sağalt solalt satır içi | sağ alt | İsteğe bağlı. reCAPTCHA rozetini yeniden konumlandırın. "inline", öğeyi CSS ile konumlandırmanıza olanak tanır. |
data-size |
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 |
tabindex | 0 | İsteğe bağlı. Zorluğun sekme dizini. Sayfanızdaki diğer öğeler sekme dizini kullanıyorsa bu öğe, kullanıcıların gezinmesini kolaylaştıracak şekilde ayarlanmalıdır. | |
data-callback |
geri çağırma | İsteğe bağlı. Kullanıcı başarılı bir yanıt gönderdiğinde çalıştırılan geri çağırma işlevinizin adı. g-recaptcha-response jetonu geri aramanıza iletilir. |
||
data-expired-callback |
süresi dolmuş geri çağırma | İsteğe bağlı. reCAPTCHA yanıtının süresi dolduğunda ve kullanıcının yeniden doğrulaması gerektiğinde çalıştırılan geri çağırma işlevinizin adı. | ||
data-error-callback |
error-callback | İsteğe bağlı. reCAPTCHA bir hatayla (genellikle ağ bağlantısı) karşılaştığında ve bağlantı yeniden sağlanana kadar devam edemediğinde çağrı işlevinizin adı. Burada bir işlev belirtirseniz kullanıcıya tekrar denemesi gerektiğini bildirmek sizin sorumluluğunuzdadır. | ||
izole | yanlış | İ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ı kimliğini (dize) veya DOM öğesini belirtin. . parametreler Anahtar=değer çiftleri olarak parametreler içeren bir nesne (ör. {"siteanahtarı": "sitenizin_anahtarı", "theme": "light"}. grecaptcha.render parametrelerine bakın. inherit İlgili parametre belirtilmemişse öğedeki mevcut data-* özelliklerini kullanın. Parametreler özelliklere göre öncelikli olur. |
grecaptcha.execute(
|
reCAPTCHA kontrolünü programatik olarak çağırın. Görünmez reCAPTCHA düğme yerine bir div üzerindeyse kullanılır.opt_widget_id İsteğe bağlı widget kimliği. Belirtilmemişse varsayılan olarak oluşturulan ilk widget olur. |
grecaptcha.reset(
|
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(
|
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>