martes, 17 de abril de 2012

API de Google Static Maps con App Inventor. Parte 2ª

Veamos todo lo dicho anteriormente con un pequeño ejemplo en el que obtendremos las coordenadas de nuestro GPS con el objeto de poder visualizar una imagen de la situación en la que nos encontramos en forma de plano o en forma de imagen de StreetView.


API de Google Static Maps con App Inventor. Parte 1ª

Vamos a ver un ejemplo de como utilizar esta API de google para obtener imágenes planas de mapas y StreetView desde App Inventor.

Lo mejor para empezar : Google Static Maps API ya no requiere una clave de Google Maps API, lo que quiere decir que a través de una simple petición que ejecutaremos con la propiedad picture de un elemento imagen de App Inventor, obteniendo una imagen de la posición o dirección que queramos. Tal que así :

http://maps.google.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=14&size=512x512&maptype=roadmap
&markers=color:blue%7Clabel:S%7C40.702147,-74.015794&markers=color:green%7Clabel:G%7C40.711614,-74.012318
&markers=color:red%7Ccolor:red%7Clabel:C%7C40.718217,-73.998284&sensor=false

Vale pero que significa todo esto. Lo vemos a continuación :


sábado, 14 de abril de 2012

App Inventor y Fusion Tables:Desventuras - Parte 3ª y Final.

Pues como muchos ya sabéis el Parsing es el proceso de análisis de un texto, hecho de una secuencia de símbolos (por ejemplo, las palabras), para determinar su estructura. Así que lo que hará nuestra funcion "Parse" en este caso es analizar esa cadena que nos devuelve Google y localizar el trozo que nos hace falta, es decir el Token Auth que necesitaremos para las siguientes peticiones SQL que hagamos sobre nuestras tablas Fusion.

He aquí la función y su llamada :

viernes, 13 de abril de 2012

App Inventor y Fusion Tables:Desventuras - Parte 2ª

Vamos al lío. Os mostraré como utilizar el acceso ClientLogin en este caso para acceder a nuestras tablas Fusion de Google con un ejemplo.


Resumiendo lo dicho anteriormente, primero debemos realizar una llamada POST al servicio de Google que necesitemos, en este caso fusion tables desde app inventor mediante un objeto Web :

En el POST (método PostText) necesitamos incluir los elementos :

accountType : Tipo de petición de autorización. Los valores posibles son : GOOGLE (obtener autorización para una cuenta Google) , HOSTED ( obtener autorización para una cuenta no Google), HOSTED_OR_GOOGLE (cualquiera de las dos anteriores). Es preferible usar HOSTED_OR_GOOGLE si no estamos seguros del tipo de cuenta.

Email : email completo del usuario

Passwd : Contraseña

service : Nombre del servicio Google para el cual solicitas autorizaciñon. Para específicos nombres de servicio, consultar la documentación del servicio correspondiente.

source : Cadena corta que identifique tu app. Debería tener este formato : "companyName-applicationName-versionID".

App Inventor y Fusion Tables:Desventuras - Parte 1ª

Pues si gran dilema. Como muchos sabréis App Inventor nos provee de un Componente para poder acceder a tablas Fusion de Google. Así que sin más me decidí a a utilizarlo con mi App F1Show 2012. Las utilizo para actualizar los datos de las carreras y clasificaciones del programa y tan feliz...

Así que una vez implementados me decido a probarlos ..y genial con mi wifi iban de perlas. El problema surgió cuando empecé a probar las actualizaciones en dispositivos con conexión a Internet a través de paquetes de datos 3G. Casi ninguno se actualizaba. El dialogo de Fusion Tables se quedaba colgado y sin una respuesta! Empecé a leer un poco y enseguida me di cuenta que la mayoría de los operadores capan puertos en las conexiones 3G con lo que la recepción de información a través de este componente era inservible.

Y ahora que. Pues sin perder tiempo me dedique a investigar en la API de Google para autenticación de aplicaciones a través de ClientLogin e incorporé este método usando los componentes WEB que nos proporciona App Inventor.

Que demonios es el acceso a través de ClientLogin. Aquí os pongo un gráfico que intentaré explicar. La Autorización con ClientLogin implica una secuencia de interacciones entre tres entidades: las  aplicaciones,  los servicios de Google, y el usuario. Este diagrama ilustra la secuencia:



El proceso de autorización ClientLogin