EasyDev con Requests

Discute el uso de extensiones desarrolladas por terceros dentro de Apache OpenOffice
Responder
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

EasyDev con Requests

Mensaje por mauricio »

Abro este tema de forma independiente al original de EasyDev, por que el tema tratado puede llegar a ser bastante largo también...

Como comunicarse con servidores web es un tema recurrente, en Python tenemos la mejor librería para hacer este trabajo, se llama Requests: http://docs.python-requests.org/en/latest/

Es tan sencilla de usar que no puede faltar en EasyDev, la he integrado en una rama de desarrollo y pueden ayudarme a probarla desde aquí: https://github.com/UniversoLibreMexicoA ... v2.5.0.oxt

Con esta librería se pueden hacer cosas tan simples, como saber nuestra IP publica.

Código: Seleccionar todo

    util = createUnoService("org.universolibre.EasyDev")
    data = createUnoStruct("org.universolibre.EasyDev.Requests")

    data.Method = "get"
    data.Url = "http://api.ipify.org"
    response = util.requests(data)
    ip_public = response.Text
    MsgBox ip_public
Y con nuestra IP pública (o cualquier IP o nombre de dominio), saber donde esta localizada.

Código: Seleccionar todo

    util = createUnoService("org.universolibre.EasyDev")
    data = createUnoStruct("org.universolibre.EasyDev.Requests")

    data.Method = "get"
    data.Url = "http://api.ipify.org"
    response = util.requests(data)
    ip_public = response.Text

    data.Url = "http://freegeoip.net/csv/" & ip_public
    response = util.requests(data)
    util.msgbox(response.Text)
Hasta cosas tan sofisticadas como la facturación electrónica, con esta librería hago todos los procesos contra webservice en Factura Libre.

CUIDADO Si están usando AOO o LibO en Windows y usan un servidor con HTTPS, por ahora, deben de deshabilitar la verificación del mismo de la siguiente manera.

Código: Seleccionar todo

    util = createUnoService("org.universolibre.EasyDev")
    data = createUnoStruct("org.universolibre.EasyDev.Requests")

    data.Method = "get"
    data.Url = "https://api.ipify.org"
    args = Array( _
        Array("verify", False) _
    )
    data.Args = args
    response = util.requests(data)
    ip_public = response.Text
Incluso en algunos que no sea posible esto, tal vez obtengan un error. Estoy viendo como integrar el total de librerías necesarias.

Pero... por ahora, con esto tienen para jugar un rato, la cantidad de servicios disponibles por webservice o por algun api web, es inmensa y sigue creciendo.

La librería tiene soporte incluso para páginas donde se tiene que identificar, pero, ya iremos viendo caso por caso.

!Feliz programación¡
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: EasyDev con Requests

Mensaje por mauricio »

He pasado esta rama a desarollo, he agregado un ejemplo de autenticación basica para las páginas que lo requieran:
https://github.com/UniversoLibreMexicoA ... quests.rst

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: EasyDev con Requests

Mensaje por mauricio »

He pasado a producción esta característica... en cuanto empiecen a ver su potencial, no podrán estar sin ella, jejej...

Dejo abierto este tema, por si tienen dudas de su uso o problemas al conectarse a algún sitio.

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Responder