Проблема с переменной my_auth. Ищите ее в скрипте, где-то там есть ошибка.
Перед запуском модуля если у него есть какие-то параметры, например: apikey, пароль, логин и т.п., нужно использовать кубик "Получить Параметр Функции".
помогите вызвать CallbackFunction после ришения капчи
-
@GamiD said in помогите вызвать CallbackFunction после ришения капчи:
@serrgo Попробуй код который выше дал засунуть в "Выполнить Javascript На Элементе" в селектор укажи путь во внутренности iframe и запустить
Столкнулся с такой же проблемой.
Уже все советы с форума перепробовал, не хочет выполнятся переход.Подскажите где искать данную функцию
-
@GamiD said in помогите вызвать CallbackFunction после ришения капчи:
@dobrok https://community.bablosoft.com/topic/15414/решение-recaptcha2-с-callback
а в той теме ссылка на эту тему
:D -
@GamiD said in помогите вызвать CallbackFunction после ришения капчи:
@dobrok https://community.bablosoft.com/topic/15414/решение-recaptcha2-с-callback
У меня hcaptcha, скачивал смотрел... не робит.
-
const findRecap = () => { function findRecaptchaClients() { // eslint-disable-next-line camelcase if (typeof (___grecaptcha_cfg) !== 'undefined') { // eslint-disable-next-line camelcase, no-undef return Object.entries(___grecaptcha_cfg.clients).map(([cid, client]) => { const data = { id: cid, version: cid >= 10000 ? 'V3' : 'V2' } const objects = Object.entries(client).filter(([_, value]) => value && typeof value === 'object'); objects.forEach(([toplevelKey, toplevel]) => { const found = Object.entries(toplevel).find(([_, value]) => ( value && typeof value === 'object' && 'sitekey' in value && 'size' in value )); if (typeof toplevel === 'object' && toplevel instanceof HTMLElement && toplevel['tagName'] === 'DIV') { data.pageurl = toplevel.baseURI; } if (found) { const [sublevelKey, sublevel] = found; data.sitekey = sublevel.sitekey; const callbackKey = data.version === 'V2' ? 'callback' : 'promise-callback'; const callback = sublevel[callbackKey]; if (!callback) { data.callback = null; data.function = null; } else { data.function = callback; const keys = [cid, toplevelKey, sublevelKey, callbackKey].map((key) => `['${key}']`).join(''); data.callback = `___grecaptcha_cfg.clients${keys}`; } } }); return data; }); } return []; } return findRecaptchaClients(); }; document.getElementById('g-recaptcha-response').value = [[CAPTCHA_RESPONSE]]; const recapData = findRecap(); const callbackPath = recapData[0].callback; try { eval(`${callbackPath}('${[[CAPTCHA_RESPONSE]]}')`); } catch (e) { console.log("Error when calling the callback:", e); }Лично мне помогает такое решение (в частности для ReCaptcha v2 Invisible):
- Поиск callback'а через этот скрипт, как уже было указано выше.
- Вставка токена, полученного от сервиса, в value для <textarea> с id/name начинающимся на g-recaptcha-response.
- Ну и после вызов найденного callback'а с переданным ему токеном.
*Если, конечно, кому-то это решение еще нужно спустя несколько лет. 👀
