reCAPTCHA:“站点所有者的错误:无效的站点密钥”

55

我试图按照这里的指示设置reCAPTCHA。 我注册了一个API密钥对,并获得了公钥和私钥。但是,对于私钥的使用方式并不清楚,也没有找到更多关于它的信息。在调用reCAPTCHA的页面上似乎没有出现私钥的使用。

我编辑了我的页面,添加了以下代码:

<script src='https://www.google.com/recaptcha/api.js'></script>

在我的HTML模板上,在结束的</head>标签之前放置。

我还放置了

<div class="g-recaptcha" data-sitekey="my-public-key"></div>

我希望我的reCAPTCHA小部件出现在哪里。

当我加载网页时,我看到以下信息:

无法联系reCAPTCHA。请检查您的连接并重试。

我还看到带有以下文本的reCAPTCHA小部件:

站点所有者的错误:无效的站点密钥

我已经检查了类似的问题,例如这个,其中答案说密钥可能无效,但是我刚刚生成了它。 我还看到了这个,但我没有禁用

Verify the origin of reCAPTCHA solutions
15个回答

113

一开始对我来说并不明显,但你需要在两个地方提供你的站点密钥:

  1. 在脚本源标签中的渲染查询字符串参数中
  2. 作为javascript execute()方法的第一个参数

enter image description here


8
我怎么会忽略那个?谢谢! - Alexander Suleymanov
5
即使是现在,reCaptcha文档仍然存在不完善的情况。 - spencer741
2
对我来说很明显,但当我尝试v2和v3时,我忘记在两个地方都更改密钥了。 - Tomáš Nesrovnal
1
我不确定我们是否有多个子域名,如果是的话,我们必须创建新的密钥。我已经这样做了,并且按照这个答案进行了修复。 - papesky
1
@Matthew,你的图片已损坏。请指出可以添加站点密钥的位置名称。 - Ram

26

你需要确保你的网站已经添加到生成API密钥并保存的Google reCAPTCHA页面的域名部分。然后再次进行测试。这对我很有效。


1
那是其中的一部分。我已经添加了我的IP地址而不是站点名称。此外,还有一个文件insert.php需要正确的私钥。 - OtagoHarbour

9
在我的情况下,我使用的是WordPress网站,
而我选择了验证码的第三个版本,然而WordPress只支持第二个版本。

1
尽管我在集成V3到WordPress中遇到了困难,但我强烈怀疑您的说法,认为WordPress支持V3。因为WordPress只是简单的PHP,所以没有硬性规定,如果PHP支持它,那么WordPress也支持它。 - Mehmood Ahmad
这与是否为WordPress网站无关。 - wickywills
我刚刚在WordPress中实现了v3,它运行良好。问题很可能是您正在使用插件。 - Guerrilla

5

我也遇到了同样的问题,来自Google reCAPTCHA控制台,你的项目未被选中。

  1. 验证reCAPTCHA解决方案的来源
  2. 向所有者发送警报

两者都要做,然后查看您的联系表单,它对我有效,请尝试一下。

希望这可以帮助你!


4
我正在使用Entrepreneur Wordpress主题,其中包含Formidable。我前往reCAPTCHA管理控制台,并为“V2 Checkbox”创建了站点和秘钥。
起初它不起作用,我收到了“对于网站所有者的错误:无效的网站秘钥”消息,但是后来发现原因是我在我的域名之前放置了“http://”。
经过反复试验,我发现删除该域名的旧reCAPTCHA,然后创建一个新的没有“http://”的reCAPTCHA就可以完美地解决!不确定是否对其他用户有或没有“www。”会有影响。
希望这些能有所帮助!

我已经添加了没有 https://www 的域名,只添加了站点域名,请帮忙。 如果去掉 https://www 对您有用,请尝试一下。 - Rakesh Jesadiya

1

我在使用WordPress 4.5的博客上遇到了reCAPTCHA v3的相同问题。当我将reCAPTCHA v3替换为reCAPTCHA v2时,问题就解决了。


1

请仔细确认您在Google ReCaptcha设置中使用的是“网站密钥”而不是“秘密密钥”。它们看起来非常相似,所以很容易犯这个错误。


1

我在我的React应用中遇到了同样的问题,reCaptcha v3给了我错误提示,而reCaptcha v2可以正常工作。只需将版本从v3更改为v2,复制并粘贴站点密钥即可完美解决。


1

我也不得不从reCaptcha类型:v3 切换到 v2,在我的情况下这个方法很有效。我认为 reCaptcha 的文档还没有完善。


1
你在哪里进行了这个更改? - undefined
你能解释一下你实际做了什么吗? - undefined
1
我降级了reCaptcha的版本。在2021年,我无法使用v3。但现在,你们可以研究一下,也许它能够正常工作。 - undefined

1

在我的情况下,我正在使用Contact Form 7插件来构建基于WordPress CMS的网站。问题是因为我正在过滤/删除查询字符串从加载脚本中,例如:script.js?**v=1.2**

function mb_remove_script_version($src)
{
  $parts = explode('?', $src);
  return $parts[0];
}

add_filter('script_loader_src', __NAMESPACE__ . '\\mb_remove_script_version', 15, 1);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接