Solución de problemas

Importante: Ya no se admite la versión 1.0 de la API de reCAPTCHA. Actualiza a la versión 2.0. Más información


No puedo saber dónde agregar reCAPTCHA

Este consejo se aplica a todos los que integren reCAPTCHA, independientemente del idioma.

En primer lugar, debes identificar dos hotspots en tu código. Estos son los lugares en los que agregarás las llamadas de reCAPTCHA.

  • Mostrar reCAPTCHA: El primer punto de actividad es el código que genera el formulario. Esperamos que sea lo suficientemente fácil de encontrar (busca una etiqueta <form> en tu código HTML) y que hayas podido mostrar el CAPTCHA en tu formulario.

  • Verifica reCAPTCHA: El segundo punto de actividad es el que parece causar problemas a las personas. Debes identificar el código que controla el envío del formulario, es decir, el código que se ejecuta cuando el usuario hace clic en enviar. Es difícil generalizar sobre cómo se ve este código, pero estas son algunas pistas que pueden ayudarte:

    • Si tu formulario puede mostrar un mensaje de error, por ejemplo, si un campo obligatorio está en blanco, busca el código que lo genera.
    • si tu formulario coloca información en una base de datos, busca un código que ejecute SQL INSERT.
    • Si tu formulario envía correos electrónicos, busca el código que lo hace.

    El formulario ya tiene validación

    El proceso será más fácil si tu formulario ya tiene alguna lógica de validación (es decir, maneja entradas no válidas del usuario mostrando un mensaje en lugar de realizar la acción que haría normalmente). Si ese es el caso y puedes encontrar el código que lo hace, estarás casi libre. Si el formulario puede mostrar un mensaje de error, busca el texto de dicho mensaje dentro del código y podrás estar seguro de que no tendrás problemas. Una vez que hayas encontrado el código de validación, debes agregar una llamada a la función check_answer, además de cualquier otra verificación que haya (dirección de correo electrónico en blanco?, ¿edad demasiado joven?, etc.).

    El formulario no tiene validación

    Si actualmente no existe una lógica de validación para el formulario (si hacer clic en Enviar siempre se realiza correctamente), el problema es más complejo. En ese caso, deberás agregar el código de validación de reCAPTCHA justo antes de que el código de manejo de formularios existente haga lo que haga cuando el usuario lo envíe. También tendrás que descubrir cómo volver a mostrar el formulario para darle al usuario otro intento con el captcha. Por desgracia, no existe una respuesta única a cómo lo haces. Depende completamente de la estructura del código que ya tengas. Si el código existente no es demasiado complejo, puedes publicarlo en el foro para desarrolladores de reCAPTCHA y pedir asesoramiento. (si lo publicas allí, asegúrate de incluir suficiente información para que otros te ayuden; por lo general, no obtienes buenos resultados con solo decir "mi código no funciona").

  • ¡No funciona! Ayuda,

    Antes de hacer cualquier otra cosa, asegúrate de usar las claves correctas. ¿Tus claves públicas y privadas están intercambiadas? ¿Te acordaste de colocar la clave privada y la clave pública en el controlador del formulario?

    Ten en cuenta que Mailhide usa claves diferentes a las del reCAPTCHA principal basado en formularios.

    Asegúrate de que tu formulario utilice el método POST. De lo contrario, cambia las variables del controlador del formulario reCAPTCHA a GET en lugar de POST.

    Si reCAPTCHA funcionaba y de repente comienzas a recibir el mensaje “Se produjo un error interno”, ¿borraste recientemente la Cuenta de Google que usaste para registrarte en las claves? Si es así, regístrate para obtener claves nuevas con una cuenta activa y pruébalas.

    reCAPTCHA acepta palabras incorrectas

    Los seres humanos cometen errores y entendemos eso. En reCAPTCHA, usamos un motor de análisis de riesgo avanzado para determinar si la solicitud entrante es de una persona o no. Cuando tenemos la certeza de que los usuarios son humanos, permitimos que cometan pequeños errores.

    No, quiero decir palabras *totalmente* incorrectas

    Si reCAPTCHA acepta cualquier entrada, es probable que no valides correctamente la respuesta de reCAPTCHA con los servidores de la API. Es decir, (1) no estás llamando de forma correcta a https://www.google.com/recaptcha/api/verify (o a la función equivalente si usas un complemento, como recaptcha_check_answer en PHP) o (2) no estás realizando la acción adecuada según la respuesta de nuestros servidores. Consulta las instrucciones específicas que usaste para instalar reCAPTCHA (ya sea a través de un complemento o no) a fin de obtener información sobre cómo verificar si el usuario ingresó la respuesta correctamente.

    Mis usuarios están comenzando a obtener captchas de una palabra

    reCAPTCHA no siempre consta de dos palabras. Es una prueba para distinguir a los humanos de los robots. En los casos en los que tengamos certeza de que eres humano, te entregaremos un captcha mucho más fácil (consulta la siguiente muestra). Nuestro sistema se basa en toda tu participación con reCAPTCHA (antes, durante y después de resolverlo) para decidir si apruebas o repruebas la prueba, y no solo con la solución.

    Captcha simple

    Si te interesa la seguridad de estos captchas sencillos, consulta nuestro blog: http://googleonlinesecurity.blogspot.com/2013/10/recaptcha-just-got-easier-but-only-if.html