gcloud recaptcha enterprise - 创建评估
gcloud recaptcha enterprise - creating an assessment
我正在学习 ReCaptcha Enterprise 教程,但遇到了 400 Request contains an invalid argument
错误。我正在使用 Django。
我正在按照此处的说明进行操作 https://cloud.google.com/recaptcha-enterprise/docs/create-assessment#python 以验证 recaptcha。
我已经能够使用此代码在前端加载验证码
{% block content %}
<script type="text/javascript">
var onloadCallback = function() {
grecaptcha.enterprise.render('html_element', {
'sitekey' : '{{ sitekey }}',
});
};
</script>
<form action="{% url 'captcha-authentication' %}" method="post">
{% csrf_token %}
<div id="html_element"></div>
<input type="submit" value="Submit">
</form>
<script src="https://www.google.com/recaptcha/enterprise.js?onload=onloadCallback&render=explicit"
async defer>
</script>
我已经确认 request.POST
包含 'g-recaptcha-response' 密钥。对于我的 site_key
,我使用的是来自 https://console.cloud.google.com/security/recaptcha.
的密钥 ID
def confirm_captcha(token, site_key, recaptcha_action):
parent_project = "t-commerce-321516"
client = recaptchaenterprise_v1.RecaptchaEnterpriseServiceClient()
event = recaptchaenterprise_v1.Event()
event.site_key = site_key
event.token = token
event.expected_action = recaptcha_action
assessment = recaptchaenterprise_v1.Assessment()
assessment.event = event
request = recaptchaenterprise_v1.CreateAssessmentRequest()
request.assessment = assessment
request.parent = parent_project
# this is the line that is throwing an error
response = client.create_assessment(request)
if not response.token_properties.valid:
print("The CreateAssessment() call failed because the token was " +
"invalid for the following reasons: "
+ str(response.token_properties.invalid_reason))
else:
if response.event.expected_action == recaptcha_action:
print("The reCAPTCHA score for this token is: " +
str(response.risk_analysis.score))
return True
else:
print("The action attribute in your reCAPTCHA tag does" +
"not match the action you are expecting to score")
return False
创建客户评估的错误是 400 Request contains an invalid argument.
有没有办法告诉 Google 为什么生气?
我在前端使用复选框,这可能意味着不需要 recaptcha_action
参数,但我不确定该怎么做。
感谢任何帮助或指点!
我认为你需要:
request.parent = `projects/${parent_project}`
我正在学习 ReCaptcha Enterprise 教程,但遇到了 400 Request contains an invalid argument
错误。我正在使用 Django。
我正在按照此处的说明进行操作 https://cloud.google.com/recaptcha-enterprise/docs/create-assessment#python 以验证 recaptcha。
我已经能够使用此代码在前端加载验证码
{% block content %}
<script type="text/javascript">
var onloadCallback = function() {
grecaptcha.enterprise.render('html_element', {
'sitekey' : '{{ sitekey }}',
});
};
</script>
<form action="{% url 'captcha-authentication' %}" method="post">
{% csrf_token %}
<div id="html_element"></div>
<input type="submit" value="Submit">
</form>
<script src="https://www.google.com/recaptcha/enterprise.js?onload=onloadCallback&render=explicit"
async defer>
</script>
我已经确认 request.POST
包含 'g-recaptcha-response' 密钥。对于我的 site_key
,我使用的是来自 https://console.cloud.google.com/security/recaptcha.
def confirm_captcha(token, site_key, recaptcha_action):
parent_project = "t-commerce-321516"
client = recaptchaenterprise_v1.RecaptchaEnterpriseServiceClient()
event = recaptchaenterprise_v1.Event()
event.site_key = site_key
event.token = token
event.expected_action = recaptcha_action
assessment = recaptchaenterprise_v1.Assessment()
assessment.event = event
request = recaptchaenterprise_v1.CreateAssessmentRequest()
request.assessment = assessment
request.parent = parent_project
# this is the line that is throwing an error
response = client.create_assessment(request)
if not response.token_properties.valid:
print("The CreateAssessment() call failed because the token was " +
"invalid for the following reasons: "
+ str(response.token_properties.invalid_reason))
else:
if response.event.expected_action == recaptcha_action:
print("The reCAPTCHA score for this token is: " +
str(response.risk_analysis.score))
return True
else:
print("The action attribute in your reCAPTCHA tag does" +
"not match the action you are expecting to score")
return False
创建客户评估的错误是 400 Request contains an invalid argument.
有没有办法告诉 Google 为什么生气?
我在前端使用复选框,这可能意味着不需要 recaptcha_action
参数,但我不确定该怎么做。
感谢任何帮助或指点!
我认为你需要:
request.parent = `projects/${parent_project}`