หน้านี้จะอธิบายวิธีเปิดใช้และปรับแต่ง reCAPTCHA ที่ไม่แสดงในหน้าเว็บ
หากต้องการเรียกใช้ reCAPTCHA ที่ไม่แสดง คุณสามารถเลือกดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้
- เชื่อมโยงคำถามกับปุ่มโดยอัตโนมัติ หรือ
- เชื่อมโยงปัญหากับปุ่มแบบเป็นโปรแกรม หรือ
- เรียกใช้ภารกิจแบบเป็นโปรแกรม
ดูวิธีปรับแต่ง reCAPTCHA แบบมองไม่เห็นได้ที่การกําหนดค่า เช่น คุณอาจต้องการระบุภาษาหรือตำแหน่งป้าย
โปรดดูที่การยืนยันคำตอบของผู้ใช้ เพื่อตรวจสอบว่าผู้ใช้แก้ไข CAPTCHA สำเร็จหรือไม่
เชื่อมโยงชาเลนจ์กับปุ่มโดยอัตโนมัติ
วิธีที่ง่ายที่สุดในการใช้วิดเจ็ต reCAPTCHA ที่ไม่แสดงในหน้าเว็บคือการรวมทรัพยากร JavaScript ที่จำเป็นและเพิ่มแอตทริบิวต์ 2-3 รายการในปุ่ม HTML แอตทริบิวต์ที่จำเป็นคือชื่อคลาส "g-recaptcha", คีย์ของเว็บไซต์ในแอตทริบิวต์ data-sitekey และชื่อของ JavaScript Callback ที่ใช้จัดการการป้อน CAPTCHA ในแอตทริบิวต์ 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 และสามารถรวมไว้ที่ใดก็ได้ในหน้าเว็บโดยไม่มีข้อจํากัด
เชื่อมโยงชาเลนจ์กับปุ่มหรือเรียกใช้ชาเลนจ์แบบเป็นโปรแกรม
การเลื่อนการเชื่อมโยงสามารถทําได้โดยระบุฟังก์ชัน Callback ของ onload และเพิ่มพารามิเตอร์ลงในทรัพยากร JavaScript ซึ่งทำงานเหมือนกับการทดสอบ reCAPTCHA ปกติ
เรียกใช้ชาเลนจ์แบบเป็นโปรแกรม
การเรียกใช้การยืนยัน reCAPTCHA แบบเป็นโปรแกรมทำได้โดยการแสดงผลคำตอบใน div ที่มีแอตทริบิวต์ data-size="invisible" และเรียกใช้ execute แบบเป็นโปรแกรม
- สร้าง div ด้วย - data-size="invisible"- <div class="g-recaptcha" data-sitekey="_your_site_key_" data-callback="onSubmit" data-size="invisible"> </div>
- เรียก grecaptcha.execute จากเมธอด JavaScript - grecaptcha.execute();- เมื่อมีการเรียกใช้ Callback คุณสามารถเรียกใช้เมธอด - grecaptcha.renderจาก JavaScript API
การกำหนดค่า
พารามิเตอร์ทรัพยากร JavaScript (api.js)
| พารามิเตอร์ | ค่า | คำอธิบาย | 
|---|---|---|
| onload | ไม่บังคับ ชื่อของฟังก์ชัน Callback ที่จะเริ่มทำงานเมื่อโหลดทรัพยากร Dependency ทั้งหมดแล้ว | |
| render | explicit onload | ไม่บังคับ แสดงผลวิดเจ็ตอย่างชัดแจ้งหรือไม่ ค่าเริ่มต้นจะเป็น onload ซึ่งจะแสดงวิดเจ็ตในแท็ก g-recaptchaแรกที่พบ | 
| hl | ดูรหัสภาษา | ไม่บังคับ บังคับให้วิดเจ็ตแสดงผลในบางภาษา ตรวจหาภาษาของผู้ใช้โดยอัตโนมัติหากไม่ได้ระบุ | 
แอตทริบิวต์แท็ก g-recaptcha และพารามิเตอร์ grecaptcha.render
| แอตทริบิวต์แท็ก g-recaptcha | พารามิเตอร์ grecaptcha.render | ค่า | ค่าเริ่มต้น | คำอธิบาย | 
|---|---|---|---|---|
| data-sitekey | คีย์เว็บไซต์ | คีย์เว็บไซต์ของคุณ | ||
| data-badge | ป้าย | ด้านล่างขวา ด้านล่างซ้าย ในบรรทัด | bottomright | ไม่บังคับ ปรับตำแหน่งป้าย reCAPTCHA "inline" ช่วยให้คุณจัดตำแหน่งด้วย CSS ได้ | 
| data-size | ขนาด | มองไม่เห็น | ไม่บังคับ ใช้ในการสร้างวิดเจ็ตที่มองไม่เห็นซึ่งเชื่อมโยงกับ div และดำเนินการแบบเป็นโปรแกรม | |
| data-tabindex | tabindex | 0 | ไม่บังคับ ดัชนีแท็บของชาเลนจ์ หากองค์ประกอบอื่นๆ ในหน้าเว็บใช้ tabindex คุณควรตั้งค่าเพื่อให้ผู้ใช้ไปยังส่วนต่างๆ ได้ง่ายขึ้น | |
| data-callback | Callback | ไม่บังคับ ชื่อของฟังก์ชันการเรียกกลับที่จะดำเนินการเมื่อผู้ใช้ส่งคำตอบเรียบร้อยแล้ว ระบบจะส่งโทเค็น g-recaptcha-responseไปยัง Callback ของคุณ | ||
| data-expired-callback | การติดต่อกลับที่หมดอายุ | ไม่บังคับ ชื่อของฟังก์ชัน Callback จะทำงานเมื่อการตอบสนอง reCAPTCHA หมดอายุและผู้ใช้ต้องยืนยันอีกครั้ง | ||
| data-error-callback | การติดต่อกลับข้อผิดพลาด | ไม่บังคับ ชื่อของฟังก์ชันการเรียกกลับที่จะดำเนินการเมื่อ reCAPTCHA พบข้อผิดพลาด (โดยปกติคือการเชื่อมต่อเครือข่าย) และดำเนินการต่อไม่ได้จนกว่าการเชื่อมต่อจะได้รับการคืนค่า หากคุณระบุฟังก์ชันที่นี่ คุณมีหน้าที่แจ้งให้ผู้ใช้ทราบว่าควรลองอีกครั้ง | ||
| เป็นแห่งๆ | เท็จ | ไม่บังคับ เพื่อให้เจ้าของปลั๊กอินไม่ต้องขัดขวางการติดตั้ง reCAPTCHA ที่มีอยู่ในหน้าเว็บ หากเป็นจริง อินสแตนซ์ reCAPTCHA นี้จะเป็นส่วนหนึ่งของพื้นที่รหัสแยกต่างหาก | 
JavaScript API
| วิธีการ | คำอธิบาย | 
|---|---|
| grecaptcha.render(คอนเทนเนอร์ พารามิเตอร์ ใช้ต่อ) | แสดงผลคอนเทนเนอร์เป็นวิดเจ็ต reCAPTCHA และแสดงผลรหัสของวิดเจ็ตที่สร้างขึ้นใหม่ container เอลิเมนต์ HTML สำหรับแสดงผลวิดเจ็ต reCAPTCHA ระบุรหัสของคอนเทนเนอร์ (สตริง) หรือองค์ประกอบ DOM เอง พารามิเตอร์ ออบเจ็กต์ที่มีพารามิเตอร์เป็นคู่คีย์=ค่า เช่น {"sitekey": "your_site_key", "theme": "light"} ดูพารามิเตอร์ grecaptcha.render ใช้ต่อ ใช้แอตทริบิวต์ data-* ที่มีอยู่ในองค์ประกอบหากไม่ได้ระบุพารามิเตอร์ที่เกี่ยวข้อง พารามิเตอร์จะมีความสําคัญเหนือกว่าแอตทริบิวต์ | 
| grecaptcha.execute( | เรียกใช้การตรวจสอบ reCAPTCHA โดยใช้โปรแกรม ใช้ในกรณีที่ reCAPTCHA ที่ไม่แสดงอยู่ใน div แทนที่จะเป็นปุ่ม opt_widget_idรหัสวิดเจ็ต (ไม่บังคับ) โดยค่าเริ่มต้นจะเป็นวิดเจ็ตแรกที่สร้างขึ้นหากไม่ได้ระบุ | 
| grecaptcha.reset( | รีเซ็ตวิดเจ็ต reCAPTCHA opt_widget_idรหัสวิดเจ็ต (ไม่บังคับ) โดยค่าเริ่มต้นจะเป็นวิดเจ็ตแรกที่สร้างขึ้นหากไม่ได้ระบุ | 
| grecaptcha.getResponse( | รับการตอบกลับสําหรับวิดเจ็ต reCAPTCHA opt_widget_idรหัสวิดเจ็ต (ไม่บังคับ) โดยค่าเริ่มต้นจะเป็นวิดเจ็ตแรกที่สร้างขึ้นหากไม่ได้ระบุ | 
ตัวอย่าง
การแสดงผลที่ชัดเจนหลังจาก Callback ที่โหลด
<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>
