parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

ReCAPTCHA v2 и Parser3

Василий М. 02.12.2017 12:54

Привет.

Нашел вот эту уже довольно древндюю ветку: https://www.parser.ru/forum/?id=74713 .

С тех пор кое-что изменилось. :-) Появились новые чипы капч, изменились адреса обработчиков и так далее. У меня получилось вставить предложенный вариант как есть, он даёт рабочую ископаемую капчу с двумя словами латиницей.

Пробуя заменить её на обычную сегодня V2 "я не робот", столкнулся с рядом проблем, часть которых не могу решить своими силами. Помогите, пожалуйста.

Что сделано:

1. Изменения в выдаче пользователю.
$result[<script type="text/javascript">
var RecaptchaOptions = ^self._printOptions[$hOptions]
</script>
<script type="text/javascript" src="${self.sChallengeURL}?k=${sPublicKey}$sError"></script>
<noscript>
<iframe src="${self.sNoscriptChallengeURL}?k=${sPublicKey}$sError" height="300" width="500" frameborder="0"></iframe><br/>
<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
<input type="hidden" name="recaptcha_response_field" value="manual_challenge"/>
</noscript>]

заменено на
$result[<script type="text/javascript">
var RecaptchaOptions = ^self._printOptions[$hOptions]
</script>
#<script type="text/javascript" src="${self.sChallengeURL}?k=${sPublicKey}$sError"></script>
<div class="g-recaptcha" data-sitekey="qwertyuiopasdfghjklzxcvbnm"></div>

<noscript>
<iframe src="${self.sNoscriptChallengeURL}?k=${sPublicKey}$sError" height="300" width="500" frameborder="0"></iframe><br/>
<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
<input type="hidden" name="recaptcha_response_field" value="manual_challenge"/>
</noscript>]


2. Изменения в адресах
В последней версии той ветки предлагался такой набор урлов:
$self.sChallengeURL[http://www.google.com/recaptcha/api/challenge]
$self.sNoscriptChallengeURL[http://www.google.com/recaptcha/api/noscript]
$self.sAJAXURL[http://www.google.com/recaptcha/api/js/recaptcha_ajax.js]
$self.sVerifyURL[http://www.google.com/recaptcha/api/verify]
Теперь, по информации , sVerifyURL=https://www.google.com/recaptcha/api/siteverify

3. Добавление скрипта в head, как просит рекапча:
<script src='https://www.google.com/recaptcha/api.js'></script>

Результат - ошибка где-то здесь, 'load' called with invalid option [parser.runtime] [uri=/workshops/answers/, method=POST, cl=510]:
$fResult[^file::load[text;$self.sVerifyURL][
	$.method[POST]
	$.form[
		$.privatekey[$sPrivateKey]
		$.remoteip[$env:REMOTE_ADDR]
		$.challenge[$hData.recaptcha_challenge_field]
		$.response[$hData.recaptcha_response_field]
	]
	$.headers[
		$.[USER-AGENT][reCAPTCHA Parser3]
	]
	$.timeout(10)
]]
Что поправить?