Estuve investigando como autenticarme a páginas web con curl por medio del método post, que es el que usa el portal de MiTelcel (donde uno puede consultar el saldo de celulares de Telcel). Curl tiene una excelente documentación (curl), de eso saque las siguientes líneas bash:
$ curl -o x.html \
-A "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3" \
--cookie-jar nck.txt \
--data "isTablet=false&j_username=55555555&j_password=pass&goto=opcional" \
--location https://www.mitelcel.com/mitelcel/login/auth
$ curl -o internet_info.json \
--cookie nck.txt \
--location https://www.mitelcel.com/mitelcel/mitelcel-api-web/api/prepago/internet/consumo/55555555
$ curl -o exit.html \
--cookie nck.txt \
--location https://www.mitelcel.com/mitelcel/logout
-A "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3" \
--cookie-jar nck.txt \
--data "isTablet=false&j_username=55555555&j_password=pass&goto=opcional" \
--location https://www.mitelcel.com/mitelcel/login/auth
$ curl -o internet_info.json \
--cookie nck.txt \
--location https://www.mitelcel.com/mitelcel/mitelcel-api-web/api/prepago/internet/consumo/55555555
$ curl -o exit.html \
--cookie nck.txt \
--location https://www.mitelcel.com/mitelcel/logout
Después de ver como autenticarme, lo intente con gambas, haciendo uso de la clase HttpClient (es necesario habilitar el componente gb.net.curl)
Habilité UpdateCookies y establecí el UserAgent a Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0
HttpClient1.Async = False
HttpClient1.CookiesFile = cookieTelcel 'User.Home &/ "hhh.txt"
HttpClient1.URL = "https://www.mitelcel.com/mitelcel/login/auth"
HttpClient1.Post("application/x-www-form-urlencoded", "isTablet=false&j_username=" & phone_n.Text & "&j_password=" & pass_s.Text & "&goto=opcional", Null, iniFile)
HttpClient1.URL = "https://www.mitelcel.com/mitelcel/mitelcel-api-web/api/prepago/internet/consumo/" & phone_n.Text
HttpClient1.Get()
HttpClient1.CookiesFile = cookieTelcel 'User.Home &/ "hhh.txt"
HttpClient1.URL = "https://www.mitelcel.com/mitelcel/login/auth"
HttpClient1.Post("application/x-www-form-urlencoded", "isTablet=false&j_username=" & phone_n.Text & "&j_password=" & pass_s.Text & "&goto=opcional", Null, iniFile)
HttpClient1.URL = "https://www.mitelcel.com/mitelcel/mitelcel-api-web/api/prepago/internet/consumo/" & phone_n.Text
HttpClient1.Get()
Ya pudiéndome autenticar desde gambas lo demás sólo fue ponerlo presentable.
No he estudiado a fondo la API que usa el portal MiTelcel, pero para lo que yo necesito me vale mi programa. Cuelgo las fuentes por si a alguien le sirve, ya sea para usarlo, mejorarlo o estudiarlo para ocuparlo con otros portales que requieran de autenticación.
Saludos.
telcelgb-0.0.1.tar.gz | ||
Descripción: | Consulta tu saldo Telcel | Descargar |
Nombre del archivo: | telcelgb-0.0.1.tar.gz | |
Tamaño: | 28.15 KB | |
Descargado: | 43 veces |
telcelgb-0.0.1.tar.gz | ||
Descripción: | Consulta tu saldo Telcel | Descargar |
Nombre del archivo: | telcelgb-0.0.1.tar.gz | |
Tamaño: | 28.15 KB | |
Descargado: | 43 veces |
telcelgb-0.0.1.tar.gz | ||
Descripción: | Consulta tu saldo Telcel | Descargar |
Nombre del archivo: | telcelgb-0.0.1.tar.gz | |
Tamaño: | 28.15 KB | |
Descargado: | 43 veces |