Mostrando entradas con la etiqueta Facebook. Mostrar todas las entradas
Mostrando entradas con la etiqueta Facebook. Mostrar todas las entradas

mayo 15, 2010

Web 2.0: Los negocios y las redes sociales.


Recuerde que..
Este blog esta desarrollado en idioma español pero utilizando Google Traductor puede adecuarlo al lenguaje de su preferencia.. Favor utilice la opcion del recuadro superior derecho... y Bienvenido a Integracion Google.

En este post vamos a comentar un poco sobre el concepto de Web2.0, y que representa el uso de las redes sociales para los negocios...

El termino Web 2.0 (vigente desde el año 2003) está comúnmente asociado con un fenómeno social, basado en la interacción que se logra a partir de diferentes aplicaciones web, que facilitan el compartir información, la interoperatividad, el diseño centrado en el usuario y la colaboración a través de Internet. Ejemplos de la Web 2.0 son las comunidades web, los servicios web, las aplicaciones Web, los servicios de red social, los servicios de alojamiento de videos, las wikis, blogs, mashups y folcsonomías. Un sitio Web 2.0 permite a sus usuarios interactuar con otros usuarios o cambiar contenido del sitio web, en contraste a sitios web no-interactivos donde los usuarios se limitan a la visualización pasiva de información que se les proporciona.
(fuente: wikipedia)

Bajo estos conceptos, una aplicación nativa del concepto de Web2.0 aplicada a los negocios serían las campañas de mercadeo y publicidad con la participación de los mismos "clientes" o "consumidores" de nuestros productos o servicios, pero debe considerarse que, también se le puede utilizar con bastante acierto dentro del campo motivacional, de instrucción y capacitación, y para el seguimiento de "casos" ó temas específicos, tanto en forma "pública" (toda la red), como a nivel "intranet", dentro de una organización, con los empleados y colaboradores de dicha organización o empresa, entre otras aplicaciones.

Ya centrándonos en lo que respecta los negocios, el principal empleo del concepto Web2.0 se orienta principalmente, como ya hemos indicado, en el campo de la publicidad y mercadeo, pero resulta conveniente considerar los siguientes aspectos:

primero, debe tenerse en cuenta el uso combinado en forma armoniosa de elementos tipo Blog (como Blogger, WordExpress o Ning por ejemplo), con herramientas ma "ligeras" pero de uso muy difundido y vigentes.. como Facebook y Twitter, así como de otras redes sociales que puedan tener importancia y aceptación en nuestro medio local como Yahoo, Sonico, Netlog, etc.; pues juntos van a constituir nuestra manera "corporativa" de penetración social a los mercados y "nichos" donde tengamos presencia ó queramos  incursionar, el cual ha de transformarse en nuestro "comunidad social". Cada uno de estos elementos que utilicemos tiene un objeto distinto: así podemos utilizar Blogger para contactar directamente a nuestros clientes y profundizar una idea, producto, concepto ó servicio con nuestros "usuarios consumidores"; ó Facebook para difundir lo mismo, pero de manera "global" (tratando de aprovechar su cartera de casi mil millones de usuarios), y todo ello de una manera sumamente atractiva y sugestiva; y por supuesto, utilizar Twitter para "perifonearlas" y causar el efecto "virulencia"; y prácticamente creo que, con todas estas herramientas, todas gratuitas en lo que concierne a su uso estándar (pues existen servicios de pago como son los Avisos de Facebook o Google Adwords); son más que suficientes para iniciar verdaderas campañas de mercadeo tanto para pequeñas y medianos negocios, pues considérese que las grandes compañías ya buen tiempo las vienen empleando... y revisando algunas experiencias al respecto, podemos observar que el "elegante" y muy vigente formato de Facebook, la facilidad de difusión de mensajes a través de Twitter y los contactos personales que podamos desarrollar a través de nuestros Blogs, bien podría hacer prácticamente innecesario el desarrollo de paginas web propias, excepto que por temas de seguridad se llegue al e-commerce o manejo de información que requiera discreción como manejo de pagos, claves de acceso, ó información técnica ó sensible de nuestros productos, servicios o del negocio.

segundo, debe tenerse presente que si consideramos utilizar un mercadeo social, pues este debe ser monitoreado de forma permanente manteniendo un adecuado nivel de comunicación y respuesta con nuestros usuarios, seguidores y clientes, pues si lo dejamos para "cuando tengamos tiempo", los usuarios y seguidores de nuestro servicio web rápidamente van a notarlo, y por supuesto, dejar de seguir nuestros "servicios sociales". Interesante la idea del empleado de mostrador que muchas veces dispone de mucho tiempo "no productivo" para nuestros negocios.. a quienes podríamos recurrir previa capacitación respecto a los objetivos de nuestro negocio, y de "modales sociales", pues debe mantenerse un estilo de comunicación y respuesta que pueda identificarnos; asimismo, debe tenerse presente los conceptos de Asistencia Virtual y tele-trabajo, mediante el cual podemos recurrir a servicios de terceros que podrían asesorarnos y ayudarnos a definir el perfil social de nuestro negocio, diseñar las formas de interrelación de las redes sociales que utilicemos, y además, dedicarse a revisar y responder las múltiples entradas y comentarios de nuestros usuarios, clientes y seguidores, e informar directamente a los encargados de la dirección del negocio respecto a los resultados tangibles de nuestra red de mercadeo social.

tercero, reiterar que si nuestra empresa o negocio va a utilizar bondades de los servicios Web2.0 resulta necesario definir y establecer un formato ó modelo "propio" conveniente para cada caso, pensando inclusive hasta en la posibilidad de empleo de múltiples idiomas, pagos "on line", y servicios de entregas directas a domicilio... dependiendo en cada caso y por supuesto, de nuestros productos y/o servicios ofertados, aunque esto signifique muchas veces incluso cambiar y/o adecuar nuestros canales vigentes de comercialización

Otro plano es el control y manejo administrativo, Internet ya prácticamente nos ha demostrado que es bastante estable y que soporta sin mayor problema millones y millones de datos y de usuarios, y con niveles bastante aceptables de seguridad (dependiendo de los navegadores, herramientas y modo de desarrollo que utilicemos), pero su empleo a nivel administrativo contable, prácticamente es bastante escaso ,y su empleo es aún mayoritariamente a nivel de mercadeo, y por eso termino esta entrada indicando que necesariamente va a existir Web3.0, que es cuando no solo las aplicaciones sociales de las organizaciones, empresas y personas estén en la red.. sino cuando inclusive los aplicativos de organización, gestión y control administrativo también lo estén, aunque esto ya tienen nombre y apellido: "Cloud Computing" y "Grid Computing" (los enlaces indicados están escritos en español, pero recomendamos su lectura usando las diferentes opciones de lenguaje de wikipedia ó haciendo uso de su traductor de idiomas preferido)


UN CASO PRACTICO

Para redondear mejor la idea presentemos un caso practico que ya hemos planteado durante el desarrollo de nuestros codelabs:

  • Como Manejar y Controlar un Negocio "retail" de venta de productos Cosméticos, de Belleza, y otros Articulos diversos para el Hogar.
Planteado el caso vale destacar que nos conviene recurrir a las redes sociales para difundir nuestro negocio.. mejor aún si es posible utilizar dicha plataforma para facilitar nuestro manejo y control del negocio, y el cual básicamente debe centrarse en las siguientes operaciones:
  • Registrar y Controlar los pedidos ó solicitudes de nuestros clientes y usuarios..
  • Registrar y Controlar nuestras Compras.. para que podamos tener idea de lo que tenemos en stock, lo podamos ofertar.. y atender los pedidos de nuestros usuarios.
  • Registrar y Controlar nuestras Ventas y Cobranzas.. para que podamos tener idea de lo que cuanto hemos vendido, cobrado.. y por supuesto cuando tenemos por cobrar y a quienes..
  • y por supuesto, aprovechar las ventajas de la Web 2.0 para difundir y afiliar mas clientes a nuestro negocio, y por supuesto, hacer mas "moderno", ameno y fácil  la interrelación con todos ellos... y por supuesto también, (porque no), pensar en eBusiness y eCommerce para facilitar el registro de pedidos, pagos, entre otras posibilidades..
Pues, todo lo descrito puede realizarse utilizando portales especializados (si desean recurrir por esta opción conviene  que revisen proyectos tipo Magento, que incluso tiene su opción opensource), donde por supuesto, había que adquirir nuestro propio dominio (nuestro nombre ó dirección personalizada en Internet como minegocio.com, minegocio.net, minombre.pe, otronombre.us, denuevo.la, etc..como estimemos conveniente y no olvidando considerar el alcance y las posibilidades de nuestra organización o negocio), y esto ahora ya no es caro, desde US$10 al año; pero también sería necesario adquirir un servicio de hosting (que tampoco ya no es caro: desde US$10-15 dolares mensuales dependiendo mucho del tiempo de contrato de 1 o mas años); y por supuesto, el costo de desarrollo y personalización del portal, que nos puede costar de US$1,000 a $10,000, dependiendo del desarrollador que contratemos, y donde el costo principalmente dependerá, del tipo de gestión administrativa asociado a nuestro proyecto: solo compras con pago on-line adelantado, que es el más convencional; con pagos contra-entrega, con opción de créditos y cobranzas, inclusión de flujo y cierre de caja, con todo lo anterior, etc.

Pero debemos tener presente que existen maneras de reducir los precios y tiempos de desarrollo de nuestros proyectos recurriendo a las mismas redes sociales "convencionales" que ahora conocemos, y a otros desarrollos que ya están empezando a mostrar sus bondades, y nos referimos principalmente al empleo de la plataforma blogger de Google y las "fanpages" de Facebook, las que incluso dependiendo del menor o mayor grado de especialización de nuestro negocio o servicio, pues podrían incluso trabajar juntos (consideramos que el uso de blogs es para poder explicar temas de manera mas detallada de lo que podríamos hacer en las entradas que ofrece Facebook).

El caso es que trabajando con la plataforma blogger de Google tenemos acceso a "entradas" y "páginas" que podemos desarrollar utilizando HTML, CSS y Javascript de la misma forma convencional con que se desarrolla cualquier pagina Web, y utilizando algunos servicios sociales disponibles para dicha plataforma, como "Google Friend Connect" y la API Opensocial, pues podríamos identificar a cada uno de nuestros usuarios (y por supuesto a los administradores del negocio), a través de una "ID" única, lo que constituye la base para poder iniciar cualquier tipo de "sistema de gestión" en la web.

Lo mismo ocurre si trabajamos con Facebook, donde empleando el SDK Javascript y otros que se nos provee (el SDK para PHP como back-end por ejemplo), pues también podríamos identificar a todos nuestros usuarios y clientes empleando la "UID" de cada uno de ellos..

Ambas plataformas son "gratuitas" (e indican que siempre lo seguirán siendo), pero vale preguntarnos como poder asociar a estos entornos de desarrollo la gestión y control de nuestros proyectos.. y como indique al inicio de esta entrada, podríamos recurrir a proyectos eCommerce ya consolidados, pero en este caso, estos proyectos principalmente se instalan sobre servicios de hostings convencionales bajo plataforma LAMP ó WAMP (de Linux ó Windows + servidor Apache + base de datos MySQL + lenguaje PHP), y con una estructura de desarrollo ya establecida (y tal vez bastante complicada para usuarios o programadores promedio).  ..vale entonces preguntarnos si sería posible comenzar con estos servicios sobre plataformas más "faciles", de uso más difundido y accesible para muchas personas, como son las "hojas de cálculo" ..y vale resaltar también, que esto es totalmente posible, utilizando los "formularios" y los servicios UI y GUI Builder de las App Script de Google, con la ventaja que su formatos nativo es "https", lo que le permite incluso ser incluidos dentro de las aplicaciones facebook como aplicaciones iframes externas, cuyo principal requisito desde octubre del 2011, es que los desarrollos que realicemos para ser incluidos dentro de Facebook, como URL ó servicios "canvas", deben contar una URL segura propia, por lo que si deseamos, que algunas páginas o desarrollos de nuestros servicios web alojados en un servicio de hosting externo, y bajo nuestro dominio, puedan ser "cargados" dentro de facebook, pues ese servicio de hosting debe proveernos URL seguras "https".. y no solo las convencionales "http".

Algo que vale también resaltar, es que la plataforma blogger de Google no provee URL seguras, por lo que no podríamos colocar "paginas" o desarrollos blogger dentro de Facebook.. pero tampoco es necesario recurrir a un servicio de hosting de "paga" que nos provea el servicio para poder incluir nuestros desarrollos dentro de Facebook.. pues por grata coincidencia y junto a todo el "enojoso" cambio de los estándares de programación de Facebook, y que desde el 01 de Junio del 2012 implica la deshabilitación definitiva del entorno de desarrollo FBML (de uso bastante popular y difundido actualmente en cientos de miles de "fanpages" en todo el mundo).. pues Facebook ahora también provee para el registro de sus aplicaciones, la opción de utilizar URL de hosting "gratuitos" (hasta cierta cuota bastante razonable).. y este es el caso de Heroku, que es una plataforma cloud para el desarrollo de aplicaciones basado en Git, que podemos utilizar en nuestras propias aplicaciones Facebook, que nos brinda la opción de selección de nuestro lenguaje de programación back-end favorito (Ruby, Python, NodeJS y PHP disponibles).. a lo que he podido probar que, PHP está bastante bueno, por cuanto, el SDK para PHPproveído por Facebook ya esta bastante probado, consolidado y estable.. y que incluso, al instalar nuestra propia aplicación "Heroku", se nos provee de una "plantilla de muestra" bastante entendible, que nos permite observar las posibilidades de desarrollo con el SDK del lenguaje que seleccionemos...


Y Aún cuando nuestro proyecto Integracion Google principalmente investiga y presenta codelabs y pruebas respecto a las herramientas y API de Google, no hemos resaltado las bondades de Google+ tanto como una plataforma social .2.0 sobria y elegante (que también permite la creación de paginas para instituciones, empresas, negocios, otros), y de mucho potencial especialmente por el manejo de streaming en lo que se conoce como Hangoust API, pero por el momento, aparte de sus plug-ins y REST API (para autenticación de cuentas Google desde sitios web externos), Google+ no provee aún de "canvas" donde podamos anexar desarrollos ó aplicaciones propias.. y que luego poder difundirla por la red social de Google+, lo que consideramos, constituye por el momento una clara ventaja de Facebook sobre el tema, pero que no dudamos que Google+, en plena evolución, y sobre todo, desarrollado sobre una plataforma más robusta, escalable y limpia que Facebook ..pues si será una opción muy interesante para el futuro.. no se, yo imagino que Google+ hasta podría asociar dominios propios a sus "fanpages" ó alguna otra sorpresa que no dudo será bastante importante en el mundo de las redes sociales..


CONCLUSIONES :

  • Podemos empezar con el desarrollo sobre "Hojas de Calculo" para gestionar y controlar pequeños y medianos negocios de manera menos compleja que desarrollando aplicaciones sobre bases de datos, y recurrir a los "formularios" e incluso a "Interface de Usuario" para facilitar el registro y el proceso de la data ingresada..
  • Podemos "insertar" esos desarrollos dentro plataformas Web 2.0 bastante populares como blogger o las "Fanpage" de Facebook, para facilitar el acceso de nuestros clientes y facilitar la gestión y administración de nuestros negocios (hasta pudiendo ingresar "data" desde equipos móviles), incluyendo el desarrollo de gadgets ó widgets de consulta de datos para facilitar nuestros procesos de ventas (para consultar nuestros stocks), y de cobranza (para consultar nuestros saldos por cobrar), y por supuesto finalmente consolidar y sumarizar la información disponible para monitorear los resultados de nuestra organización o negocio (utilidad, ratios, otros) los que por supuesto, también podríamos acceder incluso desde equipos móviles..
  • ..realmente me ha impresionado el potencial de las "App Scripts" (en pleno proceso de evolución), pero vale también resaltar que estas opciones tienen un limite, ahora de 10,000 lineas, hasta 256 columnas, y un máximo de 400,000 celdas por tabla; que es una cuota importante (debiéndose programar cortes anuales, semestrales ó mensuales según la carga de nuestro proyecto), y aún cuando esta cuota pueda incrementarse, la realidad, es que esta es una herramienta apropiada para pequeños y medianos negocios (como hay varios cientos de miles de estos negocios por aquí en Perú, y Latinoamérica en general), pero para las empresas medianas que tengan aspiraciones de crecer, por supuesto pueden utilizar estas herramientas para iniciarse ó en temas específicos y/o complementarios, pero considero que para la gestión total de estos negocio, necesariamente los responsables y dueños de estos negocios necesariamente deben empezar a presupuestar, dentro de sus costos de operación y funcionamiento, a personal de Desarrollo y Soporte TI permanente, para enfocar sus respectivos casos y sus respectivas soluciones informáticas bajo parámetros mas convencionales (empleo de Base de Datos, y considerar un adecuado diseño y departamentalización de la organización o negocio, con la correspondiente automatización de procesos de las área críticas (producción, ventas, cobranzas, contabilidad), todo por supuesto bajo un enfoque de sistemas, y tomando en consideración todas las herramientas y entornos cliente-servidor, "cloud ó grid computing", vigentes y disponibles en el ahora interesante e importante mercado del desarrollo de software.

..y para finalizar, les presentamos algunas imágenes del proyecto planteado sobre Facebook, para lo que hemos creado una "fanpage" de Facebook, y desarrollado una aplicación "canvas" utilizando Heroku, la que hemos adicionado a una pestaña de nuestra fanpage utilizando la interface de Dialogos también proporcionado por Facebook, y en la cual, para todos los usuarios de nuestro servicio, les damos acceso a nuestras aplicaciones de presentación, promoción y compra de nuestros productos (como pantallas informativas o eCommerce si es el caso), y sólo para los administradores, acceder a las opciones de registro y consulta de las operaciones de nuestro negocio... todo ello, solo utilizando nuestra cuenta Facebook (todas las herramientas empleadas son free).. a lo que se debe considerar por supuesto, el tiempo que demore nuestro desarrollo ... un buen reto!



Esta en una "fanpage" de Facebook a la que le hemos agregado nuestra aplicación "Intranet" desarrollada utilizando la plataforma Cloud de Heroku

Esta es la pantalla principal de nuestra aplicación "montada" dentro de Facebook como un iframe "canvas" 



Nuestra Aplicación e Registro de Datos desarrollada utilizando la GUI Builders de las App Scripts proporcionadas por las Hojas de Calculo de Google Docs


Esta es nuestro Registro de Egresos, una de las tablas de Google Docs que comprende el proyecto donde se graba lo registrado en la pantalla de Registro de Compras, Gastos y Otros Egresos anterior..



..y para la gestión de Ventas, Cobranzas y Otros Ingresos :





..como pueden observar en las imágenes mostradas, las "App Scripts" de Google nos permiten mantener nuestro de Registro de Información basica de nuestro negocio (Egresos e Ingresos), nuestro Flujo de Caja (en otra tabla de diseño adecuado), y el "Modelo" puede aun perfeccionarse incluyendo una manejo de Cuentas Corrientes (Cuentas por Cobrar, Cuentas por Pagar); vale decir, todos los requerimientos de nuestra organización ó negocio.






Para mayores detalles técnicos también pueden revisar nuestras entradas:

En las próximas entradas vamos a comentar mas respecto a estos conceptos que están muy asociados al mundo Google en general por cuanto, hacia ese concepto de desarrollo web de manejo total es hacia donde estamos apuntamdo...


NUESTRO PROYECTO: Community OAuth 2.0 & Business

Continuando con el desarrollo de nuestro caso practico, pero ampliado y considerando el uso del protocolo OAuth 2.0 empleado para la Autenticación y Autorización de acceso a los datos de los usuarios, protocolo que es utilizado ahora tanto por Google como en redes sociales muy difundidas como Facebook, Twitter, OpenID, otros.. y utilizando como describimos, hojas de Calculo y Apps Script de Google Docs (ahora Google Drive) ó de Google Apps, éste ultimo de uso ahora bastante difundido a nivel de instituciones, corporaciones y en especial a nivel académico-universitario; resulta que también es posible acceder a los principales datos de contacto de un usuario a objeto que dicha información quede grabada y disponible en nuestras propias base de datos a objeto de conformar "comunidades" con que podamos interactuar, ofertar nuestros productos o servicios, y hacer seguimiento detallado de su participación en nuestros proyectos.. eso quiere decir que, previa autorización de un usuario, podremos tener acceso a su "ID" utilizada dentro de la red social que utilicemos: su nombre, nickname.. y su correo electrónico principalmente, entre otros datos que se nos permita acceder (la URL de su imagen o perfil por ejemplo); y con dicha información, podríamos entonces de manera mas sencilla diseñar y entregar a nuestros usuarios, formularios para que actualicen sus datos de contacto (dirección, teléfono, otros); que registren sus preferencias respecto a nuestros servicio ó negocio, así como invitarlos a que hagan pedidos on-line de nuestros productos y servicios ofertados, pudiendo controlar sus pagos y saldos por cobrar, otorgarles regalos, ofrecerles promociones, más ofertas, etc.. el potencial es increíble.. y esto por supuesto, puede ser utilizado desde diferentes back-end (Java, PHP, Python, otros ..y utilizando base de datos MySQL, Postgres, otros, ó el datastore de Google App Engine).

Nuestro proyecto Community OAuth 2.0 and Business realiza todo ello, pero utilizando como bcak-end hojas de calculo de Google Docs y su servicio Apps Script, que permite el uso de javascript para interactuar con el datastore (las tablas de nuestras hojas de calculo en este caso) ..y consideramos que el potencial de este proyecto es bastante importante por cuanto:

  • las Hojas de Calculo de Google Docs son de uso libre hasta 5Gb (400,000 celdas por hoja de Calculo y hasta 200 hojas por cuenta Google), suficiente para el manejo de PYMES (pequeñas y medianas empresas)
  • Trabajar con las Apps Script es bastante sencillo y hay hasta 03 maneras de utilo izar la API: UI Service (que es la forma básica de emplear la API), utilizando GUI Builder (que permite diseñar nuestras "pagina" Web a desplegar utilizando un interface gráfico que nos facilita su construcción y desarrollo), y ahora desde Agosto 2012, utilizando el denominado HTML service, que significa que ahora incluso podemos construir nuestros desarrollos directamente desde una pagina HTML en blanco (utilizando todas las ventajas de uso de HTML, CSS y javascript por el front-side de nuestra pagina, incluyendo el empleo de frameworks como JQuery, JQueryUI, ExtJS, Sencha Touch u otro de nuestra preferencia en nuestros desarrollos.
  • ..y por el back-end, utilizamos también Javascript con todos los servicios que nos brinda las Apps Script, como los servicios de email, manejo del calendario, de los Mapas, de las Visualizaciones para hacer nuestros gráficos, API Contact otros.. e incluso de conexión a otras bases de datos vía "Jdbc" con lo que podríamos conectarnos y trasladar nuestra data a bases de datos más escalables como MySQL o el mismo datastore de Google App Engine.. y trabajar con la data de ambas plataformas (la de nuestras hojas de calculo.. y la "guardada" en nuestra base de datos corporativa).
  • y finalmente, para acceder al protocolo OAuth 2.0 utilizamos la Google API Javascript Client, y logramos con ello que nuestro proyecto finalmente solo utilice como lenguaje de programación Javascript.. al mismo modo que nodeJS !!

Nuestro proyecto como hemos indicado nos permite el manejo de todas esas opciones, y como podrán revisar y probar, se forma una "comunidad" en la cual haciendo click sobre las imágenes de las personas registradas se puede tener acceso a las paginas Google+ de los integrantes; y a diferencia de lo expuesto en nuestro CASO PRACTICO planteado, ahora si podemos remitir a nuestros "usuarios registrados" nuestras ofertas, promociones, novedades, etc. (como campañas de ventas), directamente a su mail ó mostrándolos en una página web para invitar a los usuarios no registrados todavía (sobre la plataforma Blogger en este caso); y lo que buscamos es que ellos puedan registrar on-line sus requerimientos (ordenes de compras).. interesante no?

Pueden revisar nuestro proyecto en el siguiente enlace:

http://communytyproject.blogspot.com/p/welcome.html

..ó también pueden dirigirse a la pagina Google+ que promociona nuestro proyecto en el GADC 2012 para que puedan comentar sus pruebas, opiniones y las posibilidades de este proyecto.. y al hacer click sobre la siguiente imagen mostrada accederemos a algunos screenshots.

El proyecto cuenta con su propio Mini-Manual y resumen técnico, pero al estar compitiendo en el Google Apps Developer Challenge GADC-2012, no tenemos disponible por el momento enlaces de descarga de las "fuentes" del modelo.. pero por supuesto, el tema es bastante amplio por lo que toda dicha información será proporcionada en un futuro próximo en una nueva entrada de éste nuestro proyecto Integracion Google.. por lo que estas lineas solo tienen carácter introductorio.


SIGUIENTES PASOS

Si ha llegado a revisar completamente esta entrada debe haberse convencido, o intuir con entusiasmo, que el potencial de todas estas herramientas mencionadas es realmente importante; y todo este desarrollo tiene un nombre: "Community Management" y "Social Media Management"; vale decir, todo el proceso descrito busca que nuestras organizaciones, negocios ó emprendimientos que estemos involucrados (propios ó de terceros), lleguen a conformar una "Comunidad" con la que podamos interactuar y fidelizar con nuestros productos, servicios, conceptos.. es el comienzo de lo que se también se conoce como "marketing digital", y reitero que es solo el comienzo por cuanto la labor de "Community Manager" va a convertirse poco a poco en un puesto de trabajo relevante y de importancia en toda organización o negocio.. como se indica, no solo es atender el blog, los anuncios, el chat.. sino establecer verdaderas campañas y estrategias.. y por supuesto cuantificar, monitorear, reportar y monetizar resultados.. todo ello acorde a las reales posibilidades y expectativas de la institución o negocio.. realmente todo un reto..

Conviene entonces den una revisión a los siguientes artículos:

y finalmente, vale destacar que a lo largo del desarrollo del tema nos hemos entusiasmado con respecto al empleo de las Apps Script y las Google spreadsheet especialmente en lo que concerniente a la gestión de micro y pequeñas empresas (que abundan en nuestra zona Latam, y por supuesto en todo el planeta.. y que en lo personal, también me interesa mucho para algunos proyectos personales), pero eso es también solo un comienzo.. la realidad concreta es que en el desarrollo de todo nuestro proyecto hemos logrado conseguir disponer de información de contacto de nuestros seguidores por el "front-side" ó lado del cliente (como variables javascript) las que hemos almacenado sobre hojas de calculo Google; pero dependiendo de la envergadura y del crecimiento de nuestros proyectos bien fácilmente podríamos "cambiar" nuestro Back-End por uno convencional PHP+MySQL, Java+MySQL (u otra base de datos como Postgress, Oracle, otros); e incluso utilizar servicios "escalables" y de "alta disponibilidad", como el servicio Amazon C3 ó el datastore de Google App Engine.. no existe limite para utilizar el "online storage web service" de nuestra preferencia de acuerdo a nuestros requerimientos, preferencias y presupuestos.. pero nuestro desarrollo del lado del cliente no tendría que variar sino en muy pocas líneas.. y en algunos casos no variar en lo absoluto, dependiendo de las técnicas de desarrollo por el lado del cliente que utilicemos en nuestro proyecto.. y hacia ello es que apunta todo el concepto de desarrollo de nuestro proyecto Integración Google.. en la que con un mismo "interface" (pero por supuesto con las respectivas adecuaciones según el Back-End que utilicemos), pues un mismo proyecto puede correr en las diferentes plataformas de desarrollo web vigentes.. tal vez en las futuras por desarrollarse.. y trabajando con PHP, Java, Python, nodeJS (Javascript), DART, GO u otro lenguaje del lado de servidor que dominemos, nos sea solicitado, o sea de nuestra preferencia.. y ésta si es una magnifica meta!.

Una muestra de ello es nuestro codelab Integration with Google (1st. part), que ahora utiliza el protocolo Oauth 2.0  para la autenticación y autorización de nuestros usuarios, desarrollo en que utilizamos el framework ExtJs, JQuery y otras herramientas "javascript" de geolocalización y disponer de una información básica de contacto con nuestros seguidores que utilicen nuestros "demos".. por supuesto, en el enlace indicado ponemos a disposición la descarga del código empleado con el cual podrá realizar sus propias pruebas en un servidor local convencional HTTP Apache (como Appserv por ejemplo) ..pero que en nuestro caso, como podrá observar, lo hemos podido desplegar sin mayores inconvenientes sobre la plataforma Google App Engine..

 now you can test our IntGoogle01-Oauth2.0 demo  (New!) .
the demo may prompt popup window (must enable it!)


Saludos
@Mlaynes




mayo 07, 2010

Let's talk about Facebook...


Recuerde que..
Este blog esta desarrollado en idioma español pero utilizando Google Traductor puede adecuarlo al lenguaje de su preferencia.. Favor utilice la opcion del recuadro superior derecho... y Bienvenido a Integracion Google.

Al estar haciendo las modificaciones a nuestro Blog, para adicionarles servicios sociales y propiciar la difusión de nuestra comunidad utilizando Facebook, twitter, Google Buzz, etc.; y leyendo diversos comentarios al respecto, realmente nos resultan muy impresionantes las cifras asociadas a Facebook: a inicios del 2010, mas de 400 millones de usuarios y mas de US$300 millones anuales de ingresos, y las cifras siguen en aumento... al mes de Julio 2010 reportan mas de 500 millones de usuarios...en Marzo del 2011 ya son 600 millones, y a Julio del 2011 se habla ya de 750 millones de usuarios y alrededor de US$ 2,000 millones de dolares de ingresos  ..

..por supuesto, nuestras felicitaciones a Facebook, es innegable que brilla con luz propia y lo convierte en un servicio con vigencia para bastante tiempo.. pero no todo lo referido a Facebook brilla... y también encontré por ahí este post, y se los presento para su consideración:


10 razones para no estar en Facebook
  1. Los términos del servicio de Facebook solamente benefician a Facebook.
  2. El CEO de Facebook (Mark Zuckerberg) tiene un historial documentado de comportamiento no ético.
  3. Facebook ha declarado la guerra contra la privacidad.
  4. Facebook constantemente está cambiando cual información se comparte y cual no sin tu consentimiento.
  5. Facebook no tiene buenas intenciones (..uy!)
  6. Toda tu información se comparte a través de las aplicaciones
  7. Facebook tiene muchos problemas técnicos (..uuy!)
  8. Es muy difícil eliminar tu cuenta de Facebook
  9. Facebook no soporta una Web abierta de verdad
  10. Facebook apesta (...que fuerte esto, no??)
y bueno, ...aunque no son necesarias las exageraciones, de todo esto algo hay de cierto, (pueden revisar informacion general, y sobre las políticas, criticas e impactos referidos a Facebook en wikipedia, la cual es un poco mas escueta pero también incisiva en su versión en español, siendo igual en las paginas para otros idiomas)

Facebook es una herramienta muy poderosa e importante, pero los últimos cambios efectuados durante el 2010, 2011 y los programados para el 2012, confirman la variación del estándar "Facebook" y la comprensible saturación de su plataforma de desarrollo ahora que se acerca a los mil millones de usuarios registrados; y aun cuando ahora recurren a conceptos "opensource", como el uso de un SDK Javascript (con soporte al estandard OAuth 2.0 para la autenticación, registro de usuarios y uso compartido de información), con soporte y manejo de "canvas" e iframes dentro de la red social, e incluso con soporte para otros entornos de desarrollo como Java, PHP, Python, entre otros.

Pero el gran cambio de Facebook va a ser resaltado a partir del 01 de Junio del este 2012, con la desactivacion de la aplicación Static FBML (en la que estan hechas miles y tal vez millones de "fanpages" de negocios, profesionales e instituciones de todo tipo que difunden sus actividades a través de la Red Social de Facebook.. Facebook requiere ahora que todas las aplicaciones que trabajen dentro de su red social utilizen los recursos de terceros (colgado sus widgets o servicios sociales a nuestras paginas webs), ó pegando como "canvas" nuestros desarrollos dentro de tabuladores de Facebook.

Ahora se requiere que todas nuestras paginas web en donde las utilicemos el SDK de Javascript de Facebook deban ser previamente "registradas" en Facebook Developers... y bueno, estas maneras no son propios de desarrollos abiertos sino 'propietarios' (tipo Microsoft para ser mas exactos), y aunque las principales criticas a Facebook van referidas a sus políticas de Privacidad y manejo de su ahora apetecible y gigantesca base de datos de "gustos" de sus usuarios, a nivel técnico, Facebook se muestra bastante errático y cambiante respecto a sus estándares de desarrollo, los que como ahora, puede continuar cambiando cuando así lo estimen.. aunque en estos ultimos 02 años realmente han habido ya muchos cambios.. así que debemos empezar a ponernos al día....

En resumen, como se indica, parece que Facebook solo piensa en Facebook, pero como consecuencia de su innegable éxito, y por los parámetros propios del negocio publicitario, es muy difícil que se convierta en un servicio por el que los usuarios tengamos que pagar..(así lo anuncian.!); aparte que su entorno para instituciones y empresas (las llamadas "fan pages"), es ahora realmente bastante sólido y eficiente, y deben ser considerados muy seriamente para su empleo en toda campaña publicitaria y de difusión a nivel local y/o global (por supuesto, siempre tomando nuestras respectivas precauciones respecto a temas de seguridad empresarial, institucional o personal principalmente en lo que respecta al manejo de información sensible o confidencial).

Considérese entonces que los comentarios presentados no deben significar que mantengamos una posición anti-Facebook, y reiteramos que e trata de una opción social muy eficiente y un innegable medio de mercadeo y difusión en plena vigencia y expansión... así que no dudemos en utilizar ese potencial para comunicar nuestros propios conceptos personales, empresariales o institucionales.. y así pensamos que debe hacerse... y por ello ahora también tenemos nuestra propia pagina Facebook, bajo el formato "fan page", que como hemos indicado, Facebook ha mejorado notablemente (y que creo, es uno de las grandes "olvidos" del recién lanzado Google+), y que ahora nos permite una captación ilimitada de seguidores, y hace que la interacción entre las entidades y sus seguidores sea mas fácil para opinar, sugerir, hacer difusión y seguimiento de enlaces, publicación y etiquetado de fotos con comentarios personales o institucionales, etc.), y que por supuesto, también incluye modificaciones en su entorno de programación para desarrolladores, temas que tocaremos a continuación...


REFERENCIAS TECNICAS

Para averiguar como agregar botones, enlaces y otros servicios sociales Facebook a nuestras paginas Web, existen múltiples foros y blogs dedicados al tema, pero manteniendo nuestro estilo de contribuir al estudio y la investigación, le pasamos los links "oficiales" de Facebook al respecto, y que en este caso toman particular relevancia, por cuanto, como indicamos en el principio de este post, FaceBook ha modificado bastante los parametros para desarrolladores desde mediados del año 2010 (..este 2011 ha continuado y en el futuro se espera mas modificaciones). Así que nos conviene revisar periódicamente los siguientes enlaces:
  • Facebook Developers, imprescindible revisar el segmento "Add Facebook to my site".
  • Crear una Pagina, para crear paginas FaceBook ("fan page"), para negocios, instituciones, de la comunidad, etc.,
  • de FaceBook a Twitter, para vincular nuestras paginas Facebook a Twitter, haciendo que lo publicado por los administradores de nuestra pagina en el Muro se repliquen en Twitter...
  • Insignias de Facebooks, una colección completa de widgets de insignias, botones y otros servicios sociales de Facebook, que podemos pegar en nuestras paginas Web personales e institucionales, siendo esta una manera directa y fácil para empezar a utilizarlos.
  • Pagina de Desarrollador Facebook, la cual en el nuevo concepto de desarrollo de aplicaciones cobra bastante importancia por cuanto en ella podremos registrar nuestras paginas Web en donde querramos correr las insignias y servicios "enriquecidos" de Facebooks utilizando iframes y el SDK< de Javascript, entre otros entornos los que podemos empezar a revisar en el siguiente link, y probar su funcionamiento en su sección "Tools".
  • Javascript Test Console, que en su link "examples" podemos seleccionar diversos ejercicios y ejemplos sencillos de aplicaciones del SDK Javascript de Facebook que podemos poner en nuestras websites o aplicaciones iFrames de nuestras fan pages.
  • Ya no existe Directorio de Aplicaciones, para acceder a las aplicaciones existentes basta con utilizar la opción Buscar digitando su nombre, o acceder a ellas a través de las invitaciones de nuestras amistades directamente desde las entradas de nuestro Muro.
Todas estos links, y otros que conviene revisar, están disponibles desde nuestra propia cuenta personal Facebook, allí observe y revise las opciones del pie de página. opción Desarrolladores.


Prepárate para tu página "optimizada" Facebook.


A partir del 23 de agosto del 2010, y continuando los cambios durante el presente año, Facebook simplificará sus páginas "para que sea más fácil navegar por ellas", confirmándose los siguientes cambios:
  • El menú de usuarios en la parte superior de nuestras entradas es ahora de manejo exclusivo para aplicaciones de Facebook, ya no se puede poner aplicaciones propias o de terceros en las pestañas o "tabs" de la parte superior del Perfil de usuarios (ahora las "pestañas" de nuestras aplicaciones o terceros se ubican en la lista de aplicaciones de la pantalla de Inicio, en la barra izquierda, y en algunos casos, si tenemos varias aplicaciones instaladas, hay que expandir la vista para que aparezcan.. es decir..nuestras pestañas pueden estar ahora bastante escondidas ..y no muy accesibles para nuestros seguidores sino tenemos en cuenta la capacidad de espacio otorgado, es por ello que ahora el desarrollo de aplicaciones bajo Facebook utiliza mas el concepto de Aplicaciones por invitación sobre publicaciones en nuestro Muro como ocurre con los Juegos u otros...
  • El espacio otorgado para la presentación de nuestros desarrollos se reducen ahora a 520 píxeles. Lo que debemos tener en cuenta al realizar nuestros desarrollos y realizar los ajustes necesarios en caso de anexar iframes, imagenes o cajas (las que debemos dimensionar al espacio disponible) ...
  • Se ha efectuado mejoras para el formato personal y "fan pages". Ahora es bastante mas atractiva la interacción como el etiquetado de fotos pues estas se mostrarán en una barra en la parte superior de nuestra pagina personal o institucional; y para el caso de paginas personales, se ha mejorado bastante los datos de perfil profesional y de trabajo (los que también se muestran en la parte superior de nuestra pagina; y en el caso de las "fan pages", ahora podemos mostrarnos como indica nuestro nick, e incluso hacer comentarios como "representantes" de nuestra pagina (y con la imagen de perfil que registremos), como si se tratase de un usuario "normal", aunque esto aun no se habilita completamente para los foros, donde las publicaciones de los "administradores" son etiquetados como de la "pagina", y no se pueda hacer comentarios en foros de terceros como "representantes".
  • Pero uno de los cambios principales para los desarrolladores es que a partir de Marzo 2011 Facebook ha desactivado las pestañas y aplicaciones FBML estático (que es una de las formas principales en que se adicionaban "pestañas" a nuestras paginas), por lo que ahora para crear "tabs" y aplicaciones para nuestras fans page de Facebook, debemos recurrir a los iFrames y al SDK de Javascript... (a la fecha sigue habiendo soporte a las aplicaciones FBML existentes pero con una funcionalidad reducida... pueda que algunos desarrollos FBML no funcionen correctamente..).
  • Pueden revisar en nuestro foro mas información al respecto:
Algo imortante que debemos tomar a consideración respecto a este último punto descrito es al trabajar con iframes "propias" o de "terceros" en nuestras paginas facebook significa que ahora para "programar" las presentaciones de dichas páginas debemos utilizar lo convencional en desarrollo Web, vale decir, basicamente HTML, CSS y Javascript; pero dependiendo de la fuente de nuestra iframes, de ser propia por ejemplo, podremos utilizar herramientas propias de nuestro entorno de desarrollo como el empleo de back-end tipo PHP+MySQL u otros JSP, Java y MySQL, etc, con lo que nuestras "paginas" podrian convertirse en aplicaciones full dinámicas... vale decir, al fin Facebook se apertura a todas las opciones de desarrollo Web, aunque debemos de tomar muy en cuenta las "politicas de desarrollo" que nos plantea:

  • Actually, there is one exception: Facebook policy is that you ARE NOT ALLOWED have autoplaying media in a tab. So no autoplaying videos, songs, etc. in the tab.
Asi podremos observar que algunas funciones "autoplay" son incluso bloqueadas, por lo que debemos probar con detalle todos los desarrollos que realicemos para paginas Facebook.

En resumen... Facebook ha mejorado bastante su presentación y perfil de "usuario" personal y de negocios con herramientas que son muy utiles para la gestión y mercadeo de nuestros proyectos personales, empresariales o institucionales .. todo es muy interesante.. pero el diseño general de la pagina es como siempre inamovible.. al estilo de Facebook..

Agregando Facebooks a nuestras paginas Web

Este es una forma de agregar plug-ins de Facebook a nuestras paginas, y las hemos utilizado para mantener una mejor interaccion con nuestros usuarios, y para que también nos puedan ayudar a difundir nuestra comunidad.

Como lo hicimos?

La imagen nos muestra como hemos efectuamos un enlace para que nuestros seguidores puedan efectuar comentarios en sus propios Muros personales, así como tambien muestra una caja con las entradas de nuestra Fan page, la que aparece en nuestro Blog. Detallamos a continuación el código utilizado para que sirva de referencia:

<script>
function fbs_click() {
u=location.href;
t=document.title;
window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),' sharer', 'toolbar=0, status=0, width=626, height=436');
return false;
};
</script>

<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmlaynessanchez.blogspot.com" onclick="return fbs_click()" target="_blank" title="Coment about us on Facebook..!">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFi4uZqjZ9Sju6d8aaSYMNAgy3PoYobPKKvPAh0ouk1I5qWskr83o6oCtHSPdykZj6LI0n0axlIm0DoAc8xsSst15sgfHiqicblLQ1SINFURH5s5PdDsgibOn4Bdy4OB03rhpLfLPasWzG/s1600/FbSobreNosotros.JPG" style="cursor: hand; cursor: pointer; display: block; float: left; height: 150px; margin: 0px 10px 5px 0px; text-align: left; width: 120px;" /><span class="Apple-style-span" style="font-size: large;">Comments about us..!</span></a>
<p>
Your support is very important to disseminate our project and bring together our users, fans GTUG, web developers and freelancers who are already using, or would like to use, the technology than Google puts at our disposal ...
<span class="Apple-style-span" style="font-size: x-small;"><span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">(click on the link or in the left image)</span></span></p>
<p>
..</p>

<iframe allowtransparency="true" frameborder="0" scrolling="no" src="http://www.facebook.com/plugins/likebox.php?id=120321264650448&amp;width=430&amp;height=650&amp;connections=10&amp;stream=true&amp;header=true" style="border: none; height: 650px; overflow: hidden; width: 430px;"></iframe>


Asimismo, al final de esta entrada podran observar un Plug-in para comentarios que ha sido desarrollado utilizando la técnica SDK de Javascript que ahora proporciona Facebook...

Este plug-in de Comentarios de Facebook permite al usuario hacer incluso "comentarios de los comentarios" en cualquier página web. Los comentarios pueden ser referidos a una página, artículo, foto o cualquier contenido que indiquemos; y los comentarios que se hagan en páginas externas ahora también pueden aparecer en tu perfil de Facebook (si así lo desea el "comentarista", pues tiene la opción de activar o desactivar el posteo a su Muro)
Como lo hicimos?
Detallamos también a continuación nuestro codigo para que les sirva de referencia:

<script>
window.fbAsyncInit = function() {
FB.init({appId: ‘138465519521758”, status: true, cookie: true,
xfbml: true});
};
(function() {
var e = document.createElement(‘script’); e.async = true;
e.src = document.location.protocol + ‘//connect.facebook.net/en_US/all.js’;
document.getElementById(‘fb-root’).appendChild(e);
}());
</script>

<div id="fb-root">
</div>
<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script><fb:comments href="http://mlaynessanchez.blogspot.com/2010/05/hablemos-sobre-facebook.html" num_posts="5" width="450"></fb:comments>


La primera parte, correspondiente a la definición FB.init, inicializa el SDK de Javascript vinculado a nuestra pagina Web, debiendo utilizar como appId el numero obtenido al registrar la URL y la pagina específica donde se va a mostrar nuestra caja de comentarios; operación que debemos realizar la Pagina del Desarrollador Facebook indicada.

Pueden tener mayor explicación del proceso revisando el siguiente link:


La segunda parte corresponde al codigo XFBML que crea el plug-in de comentarios, el cual podemos generar de: http://developers.facebook.com/docs/reference/plugins/comments/

Realmente el código es bastante corto, y hay mas cosas que pueden ser consideradas, como "localizar" los mensajes a nuestro idioma ( por defecto la indicación en_US muestra el formato  "Like" en vez de "Me gusta", para lo que tenemos que utilizar es_LA), pero una opción que voy a empezar a revisar con detenimiento es respecto a las traducciones que por ejemplo se encuentra disponible en el widgets de comentarios del servicio Open Social de Google, con esto esta herramienta sería aún mas interesante... lo indicado son solo algunas de las opciones que ahora son posibles de considerar utilizando los enriquecidos "plug-ins" de Facebook.

Para los que por urgencia requieran continuar trabajando con FBML, conviene revisen el siguiente link:


..y para empezar a revisar em manejo de iFrames conviene revisar este enlace:


Hablar de Facebook es hablar de difusión y mercadeo, por eso los invito a continuar con mayor detenimiento las nuevas herramientas y funcionalidades proporcionadas por Facebook, y también revisar nuestra entrada referente a conceptos de Web2.0: los negocios y las redes sociales.

Saludos.
@Mlaynes







Hablemos sobre Facebook..


abril 04, 2010

Integracion a Google (2da parte)



Recuerde que..
Este blog esta desarrollado en idioma español pero utilizando Google Traductor puede adecuarlo al lenguaje de su preferencia.. Favor utilice la opcion del recuadro superior derecho... y Bienvenido a Integracion Google.

(Actualizado al 21/04/2012)
Esta es la segunda parte de nuestro proyecto de Integración de Google al entorno de desarrollo del framework ExtJs, tal como habíamos prometido realizar, y cuyo objeto es unir las ventajas que nos ofrece ExtJs, y el innegable aporte de Google al desarrollo del mundo Web, y en esta oportunidad vamos a centrar nuestra atención en el uso de Spreadsheets de Google como fuente de datos, y esto porque es una forma bastante rápida para familiarizarnos con el uso de las herramientas de desarrollo que nos brindan tanto ExtJs como Google para el desarrollo de aplicaciones "sencillas", que fácilmente bien podríamos desarrollar para pequeños negocios y otros..

En este caso, he considerado para este codelab el uso de una Hoja de Calculo con una única tabla, y que se diseñó para que personas ligadas a un negocio "retail" de Productos de Belleza y Cosmética pueda controlar su negocio: Ventas y Cobranza, con la "ventaja" que todo el "ingreso y actualización de datos" se puede realizar digitando directamente sobre una Hoja de Calculo usando Google Docs (ahora llamado Google Drive), pero que le permite consultar sus stocks de productos para venta, y los recordar los saldos por cobrar de sus clientes desde cualquier lugar con acceso a Internet (incluido s por supuesto teléfonos celulares, tablets, otros), y creemos que ya pueden imaginar que, esta simple herramienta resultó bastante importante, especialmente cuando ya se tiene varias decenas de clientes y cientos de productos colocados en plaza..

Este simple ejercicio puede aún complementarse con el empleo de "Google Apps Script", los que trabajan perfectamente dentro del entorno de las hojas de Calculo de Google Docs, y con el que podemos organizar el registro y captura de nuestros datos (compras, cobranzas, gastos, ventas, cobranzas, encuestas, citaciones, registro para eventos, etc.), validarlos, procesarlos, calcular nuestros stocks de productos y saldos por cobrar, y finalmente consolidar y sumarizar la información disponible para monitorear los resultados de nuestro negocio (utilidad, saldo en caja, etc), e incluso interactuar de una manera bastante sencilla con nuestros clientes remitiéndo en forma periódica ofertas, saldos, adeudos, promociones, etc.

 ..realmente me ha impresionado el potencial de las "Apps Script" (en pleno proceso de evolución), pero vale también resaltar que estas opciones tienen un limite, ahora de 10,000 lineas u operaciones por tabla, hasta 256 columnas, y un máximo de 400,000 celdas; que siendo una cuota importante (programándose cortes anuales ó mensuales según la carga de trabajo), y aún pudiendo esta cuota incrementarse, la realidad, es que esta es una herramienta apropiada para micro y pequeños negocios (hay varios cientos de miles de ellas aquí en Perú y Latinoamérica en general), pero para las empresas medianas, y las que tengan aspiraciones de crecer, por supuesto pueden utilizar estas herramientas para temas específicos y complementarios, pero tal ez ya no para la gestión completa del negocio, y por supuesto, estas empresas deben necesariamente, empezar a programar dentro de sus costos de operación y funcionamiento, a personal de Desarrollo y Soporte TI permanente, para enfocar sus respectivos casos y sus soluciones informáticas, bajo parámetros mas convencionales (empleo de Base de Datos, Departamentalización de procesos y Automatización de las área críticas (producción, ventas, cobranzas, contabilidad, etc.), todo por supuesto bajo un enfoque de sistemas, y tomando en consideración todas las herramientas y entornos cliente-servidor, "cloud & grid computing" vigentes y disponibles en el ahora interesante e importante mercado del desarrollo de software.

Pero lo que si debo destacar es que, las "Apps script" tiene como ventaja que su API permite entre otras, dos opciones importantes: la creación de Interfaz de Usuario personalizados (utilizando UI Service y GUI Builder), los que permiten que diseñemos nuestros pantallas de captura de datos y proceso de la información al grabarlas en nuestras tablas, así como también permiten la conexión a cualquier bases de datos mediante JDBC (lectura y escritura), con lo que podemos utilizar fácilmente esta herramienta para facilitar el acceso de nuestros usuarios y procesar correctamente y validar nuestra data antes de cargarlas a bases de datos corporativas o de nuestras aplicaciones. (para un mejor alcance de estos conceptos pueden revisar nuestra entrada: Web2.0: los Negocios y las redes sociales).

Audiencia

Se recomienda que, para entender este tutorial, tengamos los suficientes conocimientos de ExtJs y desarrollo Web (HTML, Javascript, y manejo básico del back-end PHP-MySQL, instalado sobre un servidor HTTP Apache, o haber seguido los capitulos iniciales del curso de ExtJs que nos ofrece Crysfel Villa de México en su pagina del Quizzpot.

Asimismo se recomienda haber leido y probado: Integracion a Google (1ra parte), especialmente para comprender todo el proceso de integracion de las herramientas Google a ExtJs (y viceversa), que se emplean en este tutorial.

Material de Apoyo
( do click on blue icons to download )

IntGoogle-02.rar, Descomprimir este material de apoyo sobra la carpeta "www" de nuestro Servidor Web Local (seguir los pasos de la 1ra. parte de este tutorial de Integración a Google), si ya ha instalado éste módulo anteriormente sobre-escriba todos los archivos que así lo indiquen ( se ha efectuado  algunas adiciones, modificaciones y mejoras que se han tenido que realizar sobre algunas funciones y extensiones para adaptarlos a la versión 3.4.0 (la ultima v3.x ofrecida por Sencha.com antes del lanzamiento de ExtJS4), o si usted lo desea, descomprimalos en una nueva carpeta con un nombre apropiado.

(si no entiende este paso favor consulte "empezando desde cero').


IntGoogle-02.rar ( 2.4Mb ), Este código corresponde al material de apoyo utilizado para instalar el presente codelab pero en la plataforma de Desarrollo WebMatrix. El resultado de éste código es idéntico al material presentado primero, pero en este caso, comprende al proyecto completo, es decir, se ha adicionado y configurado para su uso, a la versión "liviana" del framework  ExtJs versión 3.4.0, y si se desempaqueta éste código en una carpeta de "www" en nuestro servidor local AppServ (dentro de otra carpeta que podemos llamar "WebMatrix" ), podremos ver directamente los resultados al llamarlo desde la barra de direcciones de nuestro navegador usando "http://localhost/WebMatrix/Int-Google02", y esto porque el archivo inicio del codelab en este caso es "index.html", el cual es de ejecución automática al llamar a la carpeta que los contienen...


Ahora, si trabajamos con el primer código, y si con nuestro navegador ingresamos a "http://localhost", y luego a la carpeta "Int-Google02" ( o donde hayamos descargado el material de apoyo), y ejecutamos el archivo "02.GVisualization-sample.html", debe aparecer una pantalla como la que se muestra a continuación:




Esto nos indica que nuestra descarga y copia ha sido correcta así tambien es correcta el ruteo para la importación de las librerías de ExtJs, y ya estamos listos para revisar el material de apoyo instalado.. y descubrir como hemos Integrado ExtJs con las SpreadSheets de Google (hojas de calculo).

Nota.- si no aparece la pagina es probable que no hayamos descargado a ExtJs en la carpeta "www", como mostramos en "el potencial de ExtJs"; o tal vez, estemos usando una versión de ExtJs diferente de la indicada en nuestro archivo HTML (..ahora estamos usando la versión ext-3.3.1, pero si estamos trabajando con otra versión debemos cambiar los nombres y la ruta de la carpeta que lo contiene si fuera necesario). Asimismo, observe que ahora tambien utilizamos la libreria "Groupsummary.js" de ExtJs (en la ruta ../extjs/extjs-3.x.x/examples/ux, que asi corresponde en los archivos de la versión completa ExtJs que hayamos bajado.. si esta utilizando una version "liviana" como se indica en el Curso ExtJs de Quizzpot, cerciorese de copiar este archivo en la ruta indicada.. u otra cualquiera conveniente que nos rutee adonde este se encuentre dicho archivo).

Observe asimismo que, como se indica en el Curso ExtJs, resulta conveniente copiar solo los archivos de ExtJs que necesitemos y evitar, cuando carguemos nuestros ejercicios, pruebas o desarrollos en un servidor web real (como x10hosting.com u otros de los muchos que se ofertan en internet, como indicamos en el post anterior), pues así lograremos que nuestros proyectos solo "pesen" lo justo.. quitando los "examples" propios del framework así como los "themes" o lenguajes "locale" que no emplearemos.

NOTA IMPORTANTE :

Resulta que el sistema de autorización "AuthSub for JavaScript" de Google ya no se encuentra disponible (pueden revisar el siguiente enlace), por lo que nuestro botón "Login" de nuestro codelab no permite el acceso a nuestro ejercicio; asimismo, la documentación de Google nos recomienda que utilicemos ahora "OAuth 2.0 for client-side applications", vale decir, tendremos que utilizar Google API Javascript Client para poder acceder a nuestras aplicaciones (u otra API cliente según la plataforma back-end que utilicemos, tal como PHP, Java, .NET, entre otros), pero en nuestro caso, como solo estamos trabajando aplicaciones por el lado del cliente, tendremos que recurrir a la librería cliente para Javascript indicada.

Por lo que, mientras adecuamos nuestro código, resulta conveniente que NO CONSIDEREN el proceso de acceso a la aplicación de la siguiente manera:

function activando(auth) {
  var c = Ext.getCmp('center');
  //google.accounts.user.login('http://www.google.com/m8/feeds/');
  auth = true;
  c.enable();
  c.update('');
  if (auth) {
    vistree.enable();
  };
};

within from : MenuGVisualization_02.js


TRABAJANDO CON OAUTH 2.0 :

por supuesto, a la brevedad actualizaremos todos nuestros códigos para que trabajen con el protocolo OAuth20, y les presentamos en esta oportunidad el código y su demo de nuestro codelab que hemos cargado a la plataforma GAE (Google App Engine), pero que usted puede probar en su servidor local de pruebas..

 ..now you can test our IntGoogle02-Oauth demo  (New!) .
the demo may prompt popup window (you must enable it)

IntGoogle02-OAuth20.rar ( 3.14Mb ), Este código corresponde a nuestro codelab pero adecuado al protocolo OAuth version 2.0, utilizando la "Google API Javascript Client", la cual en esta versión, incluso nos permite acceder directamente al email de nuestros usuarios.

Es importante indicar que la documentación de Google nos indica que ahora debemos trabajar con OAuth 2.0 que se esta convirtiendo en el estándar de autenticación y autorización para acceder a nuestras cuentas y poder utilizar todas las API de Google, por ello hemos adecuado nuestro codelab a dicho estándar debiéndose tener en cuenta lo siguiente:

  • Crear un nuevo proyecto en el Google API Console, con el nombre mas adecuado que queramos
  • Crear una "OAuth 2.0 Client ID" en la opción API Access de la consola.. allí podremos indicar el nombre de nuestra aplicación y la URL de un logo que la represente ..a continuación debemos indicar el tipo de nuestra aplicación ("web application" en nuestro caso), y la URL de nuestra aplicación (acepta http://localhost ó http://localhost:8080 para trabajar con nuestro servidor local de pruebas, debiendo verificar que se elija correctamente el protocolo "http ó https" y la ruta completa de acceso a nuestra aplicación para que todo funcione correctamente); por lo que al crear nuestra API Access se nos indicará la carpeta "Redirect URI" donde se realizará el proceso de autenticación y autorización OAuth 2.0 solicitado (si no ha sido creada debemos editar la configuración y registrar manualmente la carpeta donde se realizará el proceso, puede ser cualquiera dentro de "www" o crear la carpeta "oauth2callback" indicada)..
  • ..y finalmente, en la misma "Google API Console" debemos seleccionar a la opción "Services" y activar la "Google+ API" (debe estar "ON" y de color verde), lográndose con ello finalmente crear nuestra "API key" en forma automática.
  • y todo ya está listo! ..ahora al volver a la opción "API Access" de nuestra aplicación, ya tendremos disponible nuestro "Client ID" y la "API Key" (dentro de "Simple Access API"), estos datos son las que debemos utilizar y reemplazar en el archivo "index.html" de nuestra aplicación para que todo pueda funcionar correctamente.

    Conviene también revisar las diferentes opciones que nos presenta la "Google API Console" pues nos puede ser necesarias como crear, modificar, renombrar, eliminar proyectos principalmente.

  • ..y ahora a probar nuestra aplicación IntGoogle01-Oauth20 !
  • y una ultima indicación.. Como estamos trabajando con la Google Maps API v2, tenemos que activar el servicio "Google Maps API v2" en la API consola, y registrar nuestra API Key al importar la API en nuestro proyecto antes de subirlo a un servicio de hosting con un dominio personalizado y así puedan funcionar los mapas de nuestro proyecto sin mayores inconvenientes (aunque la Google Maps API v2 solo estará activa hasta Marzo 2013, por lo que debemos programar nuestras actualización a la API v.3)..por supuesto, al trabajar con nuestro servidor local "localhost" no se presentan problemas.. el tema se presenta al cargar nuestros proyectos a un servicio de hosting externo cualquiera.. como la plataforma GAE (Google App Engine), que es donde esta corriendo nuestra demo.


Detalle del Modulo.

1. Para poder utilizar el modulo,como ya se indicó en la primera parte, debe tenerse una cuenta activa en Google,.

2. Al revisar los archivos desempaquetados de nuestro material de ayuda encontraremos los siguientes archivos:
  • 02.GVisualization-sample.html, que contiene las instrucciones HTML para llamar a la biblioteca ExtJs y las API de Google, entre otras llamadas y configuraciones.
  • MenuGVisualization_02.js, que contiene las instrucciones Javascript en ExtJs que visualizan el Menú y Árbol de opciones de nuestro ejemplo, así como el código que nos permite el acceso a las opciones del Modulo, por medio de la API Contacts de Google.
  • SpreadSheet-ExtJs.js , que contiene las instrucciones Javascript en ExtJs, que nos permiten visualizar , en esta oportunidad, una tabla u hoja de Calculo de Google (creada a través de Google Docs), pero utilizando Visualizaciones Google y de ExtJs, que representan para nosotros, nuestro segundo nivel de Integración al mundo Google.
  • GVisualizationPanel.js, que contiene las instrucciones Javascript en ExtJs que construyen las "extensiones" que nos permiten utilizar Visualizaciones Google sobre ExtJs, y en este caso, funciones ExtJs que nos permiten "migrar" la data de la tabla Google a objetos "store" que puedan ser manipulados desde ExtJs.
  • GroupSummary.js, que como hemos indicado debe estar contenida en las carpetas de "extjs-3.31" y la necesitamos para importar la libreria ExtJs GroupSummary en el archivo "02.GVisualization-sample.htm", (podemos revisar su contenido en cualquier editor de textos como Notepad++)
3. En el archivo "02.GVisualization-sample.html", se encuentra comentadas casi todas las líneas explicando paso por paso que realizan.

4. ( New! ) Hemos añadido en esta oportunidad el archivo Spreadsheet productos.xls en formato Excel estandard, para los que deseen efectuar sus pruebas sobre una hoja de calculo propia, pues simplemente ingresen a Google Docs y carguen este archivo, por supuesto que adaptado al formato de Google Docs; luego solo basta copiar en la variable "dataSourceUrl" que corresponda la dirección web de nuestra hoja de claculo de Google Docs (la que se indica en la barra de direcciones de nuestro navegador cuando ingresemos a nuestro documento cargado a Google Docs)

Este archivo no forma parte del "proyecto" así que solo debe ser considerado como referencia.. asimismo debemos tener en cuenta que a Google Docs se puede cargar diversos formatos de hojas de calculo los que automáticamente traducirá al formato de Google Docs, como CSV, Openoffice, etc.

5. En el archivo "SpreadSheet-ExtJs.js", se encuentran detalladas cada una de las funciones llamadas desde "MenuGVisualization_02.js", que muestran el código de cada Visualización mostrada, y entre las que tenemos:
Integracion.Google.SpreadSheetExtJs, que muestra un "grid" completo de nuestra Tabla Google, y para lo cual utilizamos la extensión "Ext.ux.EVisualizationPanel", detallada en nuestro archivo GVisualizationPanel.js, y que a diferencia de la extensión "Ext.ux.GVisualizationPanel" que empleamos para adaptar nuestro "store" creado a partir de un "data array", y crear nuestra visualización Google; pues, como en este caso vamos a mostrar data Google sobre una visualización Google, no es necesario adaptar la data, y nuestra extensión nos permite mostrar la visualizacion sobre el panel ExtJs, y si indicamos un dataQuery, realizar la operación SQL que querramos...



En este caso, hemos utilizado como Query: 'select * where A is not null', esto porque, muchas veces, al final de nuestras hojas de calculo podemos poner resúmenes, cálculos especiales, anotaciones, etc... y para que estos no aparezcan en nuestra visualización, pues sencillamente ignoramos dichas lineas (por supuesto que en este caso, implica que no pongamos nada en la columna A de nuestra tabla si se trata de comentarios o resúmenes)

Integracion.Google.SpreadSheet_01, que muestra un Query un poco mas complejo tal como: 'select G ,sum(J), sum(L)+sum(N)+sum(P), count(A) where A is not null and K <> 0 group by G ', al que le hemos agregado otras propiedades como "order by", "label" y "format", siendo interesante notar que posteriormente nosotros vamos a utilizar esos "labels" o etiquetas de nuestro Query, como nombre o "id" de nuestras "Grids ExtJs".


Integracion.Google.SpreadSheet_02, que muestra el mismo Query anterior pero en un formato PieChart de los campos "comprador" y "monto" (que corresponde al monto que nuestro cliente ha comprado a la fecha).



Integracion.Google.SpreadSheet_03, que muestra el mismo Query anterior pero en un formato panel que contiene un Table y un PieChart de los campos "comprador", "monto", "cobrado" y "cantidad" (que corresponde a lo que nuestros clientes han comprado a la fecha).
Nótese asimismo que he implementado eventos sobre el PieChart y el Table, y al hacer click sobre algún componente del Pie o de la Table se ve reflejada la operación en ambas gráficas.




Hasta aqui, estamos utilizando la extensión "Ext.ux.EVisualizationPanel" de forma similar a como utilizamos "Ext.ux.GVisualizationPanel" en la 1ra parte de este tutorial para mostrar Visualizaciones Google sobre ExtJs (pero con data de un "store array"), y por supuesto, que podemos utilizar esta extensión para utilizar cualquiera de las visualizaciones Google que mostramos en la Galeria de Visualizaciones Google, pero utilizando como datasource a las hojas de Calculo de Google.

Resulta también conveniente a este respecto, revisar los siguientes enlaces:





Integracion.Google.SpreadSheet_04, que utiliza el mismo Query anterior pero en este caso nuestro formato panel contiene graficas ExtJs de los campos "comprador", "monto" y "cobrado", y para ello empleamos una nueva extension que hemos llamado "Integracion.Google.GoogleStorePanel", y cuya principal función va a ser adaptar los datos de la tabla Google al formato "store" de ExtJs, y colocarlas en los paneles correspondientes.



Como mostramos, ExtJs tambien tiene opciones interesantes en sus gráficas o visualizaciones que podriamos utilizar, y una de ellas es la capacidad de poder agrupar filas y columnas en sus "grids", por ello vamos a mostrar "paso a paso" como poder utilizar una agrupacion de filas en las visualizaciones que siguen a continuación.

Integracion.Google.SpreadSheet_05, en esta visualizacion vamos a mostrar como deberíamos "crear" nuestros querys para poder agruparlos, por ello, si en este caso, quisieramos agrupar los productos comprados por cada uno de nuestros clientes, y mostrar el detalle de lo vendido, lo pagado, y el saldo correspondiente (por cada producto y del total del cliente), pues nuestro campo de agrupamiento seria el "comprador", y nuestro Query seria el siguiente:

select B, G, I, J, L+N+P where A is not null and K <> 0
order by G
label B "Producto", G "Comprador", I "FVenta", J "Monto", L+N+P "Cobrado"

En este caso detallo las etiquetas, por cuanto esos nombres los vamos a utilizar como campos (fields), de nuestro "store" a crear.


Estoy mostrando nuestro dataquery en una visualización Google tipo Table utilizando la extensión "Ext.ux.EVisualizationPanel".

Integracion.Google.SpreadSheet_06, ahora mostramos el mismo dataquery pero sobre un Grid ExtJs, utilizando la extensión "Integracion.Google.GoogleStoreGrid", que va a realizar la adaptación de la data Google al formato "store" mediante la función "Ext.ux.GoogleStoreAdapter", que utiliza la función "EditorGridPanel" de ExtJs (utilizo esa función aunque en este caso no editamos los valores, pero he dejado algunas lineas comentadas para que puedan probar que es posible editar los grids ExtJs)


Nótese que nuestro adaptador "Ext.ux.GoogleStoreAdapter", crea un campo "id", al estilo del formato Json, y que utilizamos como numero o identificador de registro; y asimismo que, nuestro adaptador devuelve el "store" completo de nuestra data requerida (campos y datos incluidos); esto no es lo único requerido para realizar "data grouping", pero si en la gran mayoría de sus visualizaciones y gráficas.

Integracion.Google.SpreadSheet_07, ahora si preparamos nuestro Query para poder realizar nuestro agrupamiento, y modificamos nuestro adaptador, al que hemos llamado "Ext.ux.GoogleStoreAdapterComplete", por cuanto, no solo crea el "store", sino el "reader" y la "data" (que son componentes que crean al store), y los muestra disponibles para poder utilizarlos en la función "Ext.data.GroupingStore" de nuestra extensión"Integracion.Google.GoogleStoreGrouping" que crea nuestra StoreGrouping Visualization



Cabe anotar como un adicional que nuestro adaptador aparte del campo "id" que representa nuestro numero de registro, tambien ha adicionado un campo "resumen" (igual para todos los registros), esto es para poder tener la capacidad de "agrupar" toda la data en un solo bloque y poder mostrar un campo de sumarizacion resumen total tal como indicamos a continuación:

Integracion.Google.SpreadSheet_08



Bueno amigos, hasta aquí nuestra 2da parte de Integración a Google, y hay bastante para probar hasta lo avanzado, pero creo imprescindible que realicen sus pruebas empleando sus propias tablas, por lo que resulta importante que empiecen a revisar Google Docs y inicien sus propias aplicaciones, ejemplos hay demasiados...

Por mencionar solo una, todos los negocios pequeños o personales  (micro-empresas), la mayoría están afiliados a sistemas simplificados de declaración y recaudación fiscal, (régimen RUS de la SUNAT aquí en Lima-Peru), y solo requieren para sus declaraciones contables contar con un registro de ventas, que fácilmente se podría desarrollar en hojas de calculo de Google Docs, y que complementado con un registro de Compras y Gastos fácilmente podrían llevar el manejo administrativo contable de un pequeño negocio, "on line" colgado sobre Internet y literalmente "indestructible", y con posibilidades de consulta remota desde cualquier lugar de la ciudad, del país y del mundo... con lo que se tendría una poderosa herramienta de control para los miles de "emprendedores" que han hecho negocios pero que actualmente tienen bastantes problemas de administración y control..

Personalmente, en mi experiencia con PYMES realmente he observado muchos negocios que emplean hojas de calculo para sus procesos de administración y control, y asimismo tambien en varios casos les he planteado solución a varios negocios de este tipo (boutiques, salones spa, tiendas o bodegas, etc.), utilizando exclusivamente spreadsheets de Google Docs en donde solo se requiere una computadora con acceso a Internet (y que también se pueden complementar a soluciones Web2.0 para mercadeo y publicidad de nuestros productos/servicios, y para la fidelización de clientes), ..respecto a este tema, ahora resulta importante destacar que la principal red social de estos momentos: Facebook, había decretado en octubre del 2011 la obsolescencia de su lenguaje FBML nativo, pero para el 01 de Junio de este año 2012 ha programado su cese, lo que afectará a varios cientos de miles y tal vez millones de negocios y profesionales en todo el mundo, cuyas paginas "fanpage" estan actualmente hechas en lenguaje FBML, utilizando la plataforma de desarrollo de Facebook.. lo que orientará el mercado de desarrollo de las pequeñas empresas hacia otras herramientas como son el empleo del SDK Javascript y "canvas" de Facebook, y por supuesto, hacia Google Docs (ahora Google Drive), y con uso de "Apps Script".. claro que para varios desarrolladores tal vez estas sean soluciones simples, pero realmente pueden llegar a ser más económicas y efectivas.. e incluso bastante complejas y especializadas.

En lo que respecta a nuestro proyecto Integracion Google, en próximos codelabs vamos a plantear el mismo ejercicio pero sobre otras plataformas...y entre las que me parecen muy interesantes para utilizar tenemos el Back-End PHP+MySQL (muy popular en servicios de Hosting externos y utilizados para instalar y desplegar "servicios sociales" muy difundidos como Wordpress, Elgg, phpBB, Drupal  y otros, y que por supuesto, bien podriamos integrar a nuestros desarrollos); tambien tenemos a la combinación JSP(Java)+MySQL, que es bastante empleado para desarrollos "complejos" y profesionales; y asimismo ya dentro del mundo Google Cloud tenemos el "datastore" de Google App Engine, que involucra el manejo del concepto "Big Table". Para todos los casos planteados, tenemos como principal requisito que, primero debe desarrollarse un modelo básico de mantenimiento o gestión de base de datos (altas, bajas, modificación, consulta, impresión, etc), por cuanto, a diferencia de partir de una tabla de Google Docs, en dichas plataformas debe "programarse" el registro y manejo de nuestra data, el cual debe realizarse a través de base de datos, y nuestra información no debe ser ingresada directamente a las tablas, sino a través de formularios y/o grids editables o la combinación de ambos, los que bien pueden ser diseñados con ExtJs.

Saludos

Opina en nuestro foro §FB..!