完成 reCAPTCHA 表单以拨打 phone 电话
Complete a reCAPTCHA form to make a phone-call
我希望人们通过我的个人页面(移动和桌面友好)与我联系,但我不希望我的手机 phone 号码被机器人抓取。所以我想我可以让访问我页面的用户勾选 Google reCAPTCHA 表单以访问我的 phone 号码。
<form action="?" method="POST">
<div class="g-recaptcha" data-sitekey="6Lc5XQ4TAAAAAN18KgCH-E-tVEVnzwP80NDX9v9Q"></div>
<br/>
<input type="submit" value="Submit">
</form>
那么我应该为表格操作做些什么呢?我不希望我的号码在那里使用 "tel:" 标准,因为这样我的号码在源代码中仍然可见。
总而言之,我只是想知道在不泄露 phone 号码或允许机器人抓取的情况下以编程方式实例化 phone 调用的最佳方法是什么。
提前致谢!
据我所知,您不能仅在客户端使用 reCaptcha。
您需要一种服务器端语言(仅)来处理和验证验证码请求。
例如PHP。
您将服务器端程序的 URL 从提交的表单数据中读取 g-recaptcha-response
并将其验证为 described in the documentation 然后输出错误消息或 HTML 包含您的详细联系信息的文档。
...if I include the reCAPTCHA form... How do I save the results of Google's siteverify endpoint? Do I need some other Javascript to capture the result and replace the reCAPTCHA with the phone-number link?
当然,您需要一些 Javascript 基于浏览器的逻辑来验证真人与机器人。看我的回答 and the complete post。
在我的回答中,ajax 调用 thre proxy.php 让用户进行验证。
因此,如果成功,您将再次 ajax 调用您的服务器以检索您的 phone 号码并插入它而不是 g-recaptcha 代码。因此,您可以通过将 phone 号码设置为仅被证明是人类的人来保护隐私:
...
var url='proxy.php?url=' + 'https://www.google.com/recaptcha/api/siteverify';
$.ajax({ 'url' : url,
dataType: 'json',
data: { response: response},
success: function( data ) {
var res = data.success.toString();
// alert( "User verified: " + res);
if (res == 'true') {
$.ajax( url: '<url to fetch your phone number>',
success: function( phone ){
document.getElementById('g-recaptcha').innerHTML = phone;
} // end of success for phone
); // end of $.ajax to get phone
} // end if
} // end of success for user verify
}); // end of $.ajax to proxy.php
我希望人们通过我的个人页面(移动和桌面友好)与我联系,但我不希望我的手机 phone 号码被机器人抓取。所以我想我可以让访问我页面的用户勾选 Google reCAPTCHA 表单以访问我的 phone 号码。
<form action="?" method="POST">
<div class="g-recaptcha" data-sitekey="6Lc5XQ4TAAAAAN18KgCH-E-tVEVnzwP80NDX9v9Q"></div>
<br/>
<input type="submit" value="Submit">
</form>
那么我应该为表格操作做些什么呢?我不希望我的号码在那里使用 "tel:" 标准,因为这样我的号码在源代码中仍然可见。
总而言之,我只是想知道在不泄露 phone 号码或允许机器人抓取的情况下以编程方式实例化 phone 调用的最佳方法是什么。
提前致谢!
据我所知,您不能仅在客户端使用 reCaptcha。
您需要一种服务器端语言(仅)来处理和验证验证码请求。
例如PHP。
您将服务器端程序的 URL 从提交的表单数据中读取 g-recaptcha-response
并将其验证为 described in the documentation 然后输出错误消息或 HTML 包含您的详细联系信息的文档。
...if I include the reCAPTCHA form... How do I save the results of Google's siteverify endpoint? Do I need some other Javascript to capture the result and replace the reCAPTCHA with the phone-number link?
当然,您需要一些 Javascript 基于浏览器的逻辑来验证真人与机器人。看我的回答
在我的回答中,ajax 调用 thre proxy.php 让用户进行验证。 因此,如果成功,您将再次 ajax 调用您的服务器以检索您的 phone 号码并插入它而不是 g-recaptcha 代码。因此,您可以通过将 phone 号码设置为仅被证明是人类的人来保护隐私:
...
var url='proxy.php?url=' + 'https://www.google.com/recaptcha/api/siteverify';
$.ajax({ 'url' : url,
dataType: 'json',
data: { response: response},
success: function( data ) {
var res = data.success.toString();
// alert( "User verified: " + res);
if (res == 'true') {
$.ajax( url: '<url to fetch your phone number>',
success: function( phone ){
document.getElementById('g-recaptcha').innerHTML = phone;
} // end of success for phone
); // end of $.ajax to get phone
} // end if
} // end of success for user verify
}); // end of $.ajax to proxy.php