![]() |
TWebBrowser, OAuth y reCaptcha
Saludos a todos, me encuentro con una dificultad que me tiene algo atonito
Estoy intentando crear una biblioteca orientada a objetos para la API Rest de Mercado Libre Leyendo la documentacion, veo que una ves registrada nuestra aplicacion y obtenido un "ID", debemos implementar autorizacion mediante OAuth Para ello, lo unico que hay que hacer, es abrir un navegador de internet, ir a cierta url, y luego si el usuario se logea correctamente, se lo redirige a otra url que yo mismo puedo especificar, y al final le agrega el token de autorizacion generado para que yo lo capture. La famosa Url en cuestion es la siguiente:
En donde mi Client ID es: 2010039294220063 (no tengo problemas en compartirlo porque es solo de prueba) Si hago las pruebas desde un navegador cualquiera (Chrome, Vivaldi, Internet Explorer) el proceso es exitoso y cuando inicio sesion en Mercado Libre me envia a "https://www.google.com.ar/aca-un-string-que-es-el-token" y todo perfecto Ahora bien, quiero hacer lo mismo desde Delphi y no puedo. He creado una aplicacion vacia, coloque un TWebBrowser y luego invoque al metodo Navigate, con la URL que deje arriba La pagina de Mercado Libre se muestra, en esta instancia, correctamente y puedo colocar usuario y contraseña. Pero el problema es cuando aparece el bendito captcha: En realidad el captcha no aparece. Con captcha me refiero al "chirimbolo" ese que te dice que le hagas click para demostrar que no sos un robot. Ok, el bendito captcha no aparece y no puedo iniciar sesion y seguir con el proceso :( Por si no soy claro, esto es lo que veo desde Chrome por ejemplo: ![]() Esto veo desde Delphi (siempre estamos hablando de la misma URL) ![]() Lo mas chistoso es que si uno insiste y decide volver a poner usuario y contraseña y hace click en "Ingresar", aparece la leyenda de error de "haga click en el cuadro para continuar", como se ve en la imagen y que es lo que ocurre cuando no tildas el captcha Por supuesto que algun error aparece, es uno de esos errores del Internet Explorer (tengo entendido que el TWebBrowser envuelve IE). Ninguna expcecion es generada en tiempo de ejecucion. El error (o mas bien advertencia, tiene el cartelito con el signo de admiracion y fondo amarillo) es este: ![]() Agradezco enormemente si alguien puede darme una mano |
Hola,
Lo primero que yo probaría sería indicar a Windows que nuestro "WebBrowser" ha de emular una versión más o menos "moderna" de Internet Explorer. Por ejemplo, la siguiente unidad (copiada aquí ahora un poco deprisa, creo que funcionará sin cambio alguno) lo que hace es indicar que nuestro "WebBrowser" quiere comportarse como un Internet Explorer 11, si es que este se encuentra instalado en el sistema.
Creo que eso ya podría solucionar el problema, Agustín. Si no es así, tal vez podamos intentar alguna otra cosa. :) |
David, genio, funciona excelente.
Nunca se me hubiese ocurrido que podria ser eso. Lo mas probable es que si consigo completar esta biblioteca la publique. Podria incluir esta unidad de codigo en ella? Y adaptarla de acuerdo a mi estilo particular? |
Hola Agustín,
Me alegro de que funcionase. Por supuesto, puedes adaptar el código a tus necesidades. De hecho la unidad de más arriba lo que hace es añadir en el registro la clave correspondiente al iniciarse el programa, y, borrar dicha clave cuando el programa se cierra. No hay nada de particuar ahí, lo que tenemos que hacer es escribir la clave de marras en el registro. :) |
Bueno al menos la parte del OAuth ya esta funcionando bien y se puede recuperar facilmente el token
Aca esta el codigo que lo implementa y hay demo para Vcl y FMX https://github.com/ortuagustin/Delph.../Mercado Libre Saludos! |
La franja horaria es GMT +2. Ahora son las 08:55:57. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi