reCAPTCHA نامرئی

این صفحه نحوه فعال کردن و سفارشی کردن reCAPTCHA نامرئی را در صفحه وب خود توضیح می دهد.

برای فراخوانی reCAPTCHA نامرئی، می توانید یکی از موارد زیر را انجام دهید:

برای یادگیری نحوه سفارشی کردن reCAPTCHA نامرئی به تنظیمات مراجعه کنید. برای مثال، ممکن است بخواهید زبان یا مکان نشان را مشخص کنید.

برای بررسی اینکه آیا کاربر با موفقیت CAPTCHA را حل کرده است، به تأیید پاسخ کاربر مراجعه کنید.

چالش را به صورت خودکار به یک دکمه متصل کنید

ساده ترین روش برای استفاده از ویجت reCAPTCHA نامرئی در صفحه شما این است که منابع جاوا اسکریپت لازم را در خود جای دهید و چند ویژگی به دکمه html خود اضافه کنید. ویژگی های لازم عبارتند از یک نام کلاس ' g-recaptcha '، کلید سایت شما در ویژگی data-sitekey ، و نام یک callback جاوا اسکریپت برای انجام تکمیل کپچا در ویژگی data-callback .

<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>

اسکریپت باید با استفاده از پروتکل HTTPS بارگیری شود و می تواند از هر نقطه ای از صفحه بدون محدودیت وارد شود.

چالش را به صورت برنامه ای به یک دکمه متصل کنید یا چالش را فراخوانی کنید.

به تعویق انداختن اتصال را می توان با مشخص کردن عملکرد پاسخ به تماس بارگذاری شده و افزودن پارامترها به منبع جاوا اسکریپت به دست آورد. این مانند چالش معمولی reCAPTCHA عمل می کند.

به صورت برنامه ای چالش را فراخوانی کنید.

فراخوانی تأیید reCAPTCHA به صورت برنامه‌ای می‌تواند با رندر کردن چالش در یک div با ویژگی data-size="invisible" و فراخوانی برنامه‌نویسی execute حاصل شود.

  1. یک div با data-size="invisible" ایجاد کنید.

    <div class="g-recaptcha"
          data-sitekey="_your_site_key_"
          data-callback="onSubmit"
          data-size="invisible">
    </div>
    
  2. grecaptcha.execute را از روش جاوا اسکریپت فراخوانی کنید.

    grecaptcha.execute();
    

    هنگامی که پاسخ تماس شما اجرا می شود، می توانید متد grecaptcha.render را از JavaScript API فراخوانی کنید.

پیکربندی

پارامترهای منبع جاوا اسکریپت (api.js).

پارامتر ارزش شرح
در حال بارگذاری اختیاری. نام تابع پاسخ به تماس شما که باید پس از بارگیری همه وابستگی ها اجرا شود.
ارائه دادن صریح
در حال بارگذاری
اختیاری. اینکه آیا ویجت را به طور صریح رندر کنید. به‌طور پیش‌فرض برای بارگذاری، که ویجت را در اولین تگ g-recaptcha که پیدا می‌کند، نمایش می‌دهد.
hl کدهای زبان را ببینید اختیاری. ویجت را مجبور می‌کند به زبان خاصی ارائه شود. در صورت نامشخص بودن، زبان کاربر را به صورت خودکار تشخیص می دهد.

ویژگی های تگ g-recaptcha و پارامترهای grecaptcha.render

ویژگی تگ g-recaptcha پارامتر grecaptcha.render ارزش پیش فرض شرح
داده-سایت کلید سایت کلید کلید سایت شما
نشان داده نشان پایین سمت چپ به صورت خطی سمت راست پایین اختیاری. جای نشان reCAPTCHA را تغییر دهید. 'inline' به شما امکان می دهد آن را با CSS قرار دهید.
اندازه داده اندازه نامرئی اختیاری. برای ایجاد یک ویجت نامرئی که به یک div متصل شده و به صورت برنامه‌ریزی اجرا می‌شود استفاده می‌شود.
داده tabindex tabindex 0 اختیاری. فهرست برگه چالش. اگر عناصر دیگر در صفحه شما از tabindex استفاده می کنند، باید آن را طوری تنظیم کنید که ناوبری کاربر را آسان تر کند.
داده برگشت به تماس پاسخ به تماس اختیاری. نام تابع پاسخ به تماس شما، که زمانی اجرا می شود که کاربر یک پاسخ موفقیت آمیز ارسال کند. نشانه g-recaptcha-response به تماس شما ارسال می شود.
data-expired-callback منقضی شده است اختیاری. نام تابع پاسخ به تماس شما که زمانی اجرا می‌شود که پاسخ reCAPTCHA منقضی شود و کاربر نیاز به تأیید مجدد دارد.
داده-خطا-بازخوانی پاسخ به تماس خطا اختیاری. نام تابع پاسخ به تماس شما، زمانی که reCAPTCHA با خطا مواجه می‌شود (معمولاً اتصال شبکه) اجرا می‌شود و تا زمانی که اتصال بازیابی نشود، نمی‌تواند ادامه یابد. اگر تابعی را در اینجا مشخص کنید، شما مسئول اطلاع دادن به کاربر هستید که باید دوباره تلاش کند.
جدا شده نادرست اختیاری. برای اینکه صاحبان افزونه با نصب های موجود reCAPTCHA در یک صفحه تداخل نداشته باشند. اگر درست باشد، این نمونه reCAPTCHA بخشی از یک فضای ID جداگانه خواهد بود.

JavaScript API

روش شرح
grecaptcha ارائه دادن (
ظرف،
مولفه های،
به ارث می برند
)
ظرف را به‌عنوان ویجت reCAPTCHA ارائه می‌کند و شناسه ویجت جدید ایجاد شده را برمی‌گرداند.
ظرف
عنصر HTML برای رندر کردن ویجت reCAPTCHA. شناسه کانتینر (رشته) یا خود عنصر DOM را مشخص کنید.
مولفه های
یک شی حاوی پارامترهایی به عنوان جفت کلید=مقدار، برای مثال، {"sitekey": "your_site_key"، "theme": "light"}. پارامترهای grecaptcha.render را ببینید .
به ارث می برند
اگر پارامتر مربوطه مشخص نشده باشد، از ویژگی های موجود data-* روی عنصر استفاده کنید. پارامترها بر ویژگی ها اولویت خواهند داشت.
grecaptcha اجرا کردن (
opt_widget_id
)
چک reCAPTCHA را به صورت برنامه ای فراخوانی کنید. اگر reCAPTCHA نامرئی به جای دکمه روی یک div باشد استفاده می شود.
opt_widget_id
شناسه ویجت اختیاری، در صورت نامشخص بودن، روی اولین ویجت ایجاد شده پیش‌فرض می‌شود.
grecaptcha تنظیم مجدد (
opt_widget_id
)
ویجت reCAPTCHA را بازنشانی می کند.
opt_widget_id
شناسه ویجت اختیاری، در صورت نامشخص بودن، روی اولین ویجت ایجاد شده پیش‌فرض می‌شود.
grecaptcha getResponse (
opt_widget_id
)
پاسخ ویجت reCAPTCHA را دریافت می کند.
opt_widget_id
شناسه ویجت اختیاری، در صورت نامشخص بودن، روی اولین ویجت ایجاد شده پیش‌فرض می‌شود.

مثال ها

رندر صریح پس از پاسخ به تماس در بارگذاری

<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>

فراخوانی چالش reCAPTCHA نامرئی پس از تأیید اعتبار سمت مشتری.

<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>