INSTITUCIONAL
COMUNIDAD
BLOG
AYUDA
MI CUENTA
EN PT ES

GeneXus Blog

Jugando con Facebook

Alejandro Cimas de Artech comparte con la Comunidad tres controles que resuelven la comunicación con Facebook desde nuestros objetos. Disponibles en la GXPlatform Gallery de la Comunidad GeneXus.

 :: Por Alejandro Cimas ::

Desde hace un tiempo tenía ganas de poder integrar Facebook con GeneXus, de hecho en la charla que dimos con Javier Larrosa en la XVIII GeneXus Meeting del 2008 algo habíamos mostrado. En esa oportunidad lo hicimos a través de los External Objects de GeneXus, utilizamos una librería desarrollada por Microsoft para interactuar con Facebook. La idea no estaba mal y de hecho pudimos comunicarnos muy fácilmente a través de dicha librería.

El problema con esto es que estábamos usando un producto de un tercero pudiéndolo hacerlo directamente a través de la API de Facebook. Esto tenía como inconveniente que siempre que ese tercero cambie nosotros debemos cambiar nuestro External Object para actualizar la lista de métodos/propiedades.

Eso fue justamente lo que nos pasó luego del evento, Microsoft cambió varias interfaces de dicha librería debido a cambios en la propia API de Facebook, y lo que nosotros teníamos funcionando y que de hecho mostramos en la demo de la charla, dejó de funcionar.

Lo interesante de utilizar un External Object era que teníamos la API de Facebook encapsulada en dicho objeto y era muy fácil su utilización.

Podíamos seguir en la línea de utilizar una librería de un tercero o podíamos nosotros mismos interactuar con la API de Facebook sin necesidad de un tercero, y esa es justamente la línea que elegimos, desarrollar una serie de User Controls que resuelvan la comunicación con Facebook desde nuestros objetos.

En cualquier caso, ya sea utilizando una librería de un tercero o accediendo a la API directamente, tenemos que crear una aplicación en Facebook, para lo cual primero que nada debemos agregar a nuestro perfil de Facebook la application: Developer. Y luego crear una nueva application, esto nos permitirá obtener una ApiKey con la cual podremos acceder a la API. Acá pueden saber un poco más al respecto.

La idea de los User Controls es utilizar la JavaScript Client Library, para acceder a la API a través de código javascript. No queremos hostear una app en Facebook, por lo cual cuando creemos nuestra app en Developer sólo nos interesará:

Basic - API Key, Key necesaria para poder interactuar con la API:



Connect - Connect URL, url donde Facebook enviará una session válida para comunicarnos con ellos:



Como pueden ver, también configuré un valor para Base Domain, en este caso localhost. Esto se debe a que tendremos una comunicación entre nuestra app y Facebook a través de Java Script, por lo cual habrá una Cross Domain Communication, por lo cual debemos crear un Channel entre nuestra app y Facebook, para lo cual necesitamos crear un archivo xd_receiver.htm y almacenarlo en nuestro server. Pueden obtener más detalles aquí, pero a los efectos de la utilización de los User Controls en GeneXus sólo tenemos que tener en cuenta dos cosas:

1. cuando creamos la app en Facebook indicar un Base Domain, con lo cual indicamos el nombre del dominio, donde a su vez estará el archivo xd_receiver.htm

2. cuando utilicemos el User Control: FacebookConnect, el cual nos permitirá conectarnos con Facebook, debemos indicar la ruta a dicho archivo a través de la property xdChannelUrl, cuyo valor por defecto es "/xd_receiver.htm".

Por lo cual si en el User Control indicamos como xdChannelUrl el valor "/xd_receiver.htm", entonces en el caso de .NET debemos almacenar el archivo en: C:\Inetpub\wwwroot, y en el caso de Java utilizando tomcat como webserver en: C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT.

Los tres User Controls que tenemos al día de hoy son:

FacebookConnect: necesario para establecer la conexión entre nuestra aplicación y Facebook.

Text: text del botón que se agregara a nuestro form y que nos permitirá establecer la comunicación con Facebook, valor por defecto: "Connect with Facebook".

ApiKey: como mencionamos antes es la Key asociada a la app que creamos en Facebook.
xdChannelUrl: url o ruta al archivo xd_receiver.htm que nos permitirá establecer una cross domain communication entre nuestra app y Facebook, valor por defecto: "/xd_receiver.htm"

Size: tamaño del boton, valores posibles: small, medium, large, or xlarge, valor por defecto: "medium".

FacebookLoggedUser: muestra la foto de perfil y el nombre del usuario logueado a Facebook.

Width: width de la foto, valor por defecto: 50.

Height: height de la foto, valor por defecto: 50.

FacebookLogo: true/false, indica si se quiere mostrar el logo de Facebook o no en la foto, valor por defecto: true.

Linked: true/false, indica si se quiere tener un link al perfil de Facebook en la foto de perfil, valor por defecto: true.

FacebookShare: permite compartir un link en el muro del usuario logueado.

Link: link a compartir una vez que el user hace click en el botón asociado.

Type: tipo de boton, valores posibles: box_count, button_count, button, icon, or icon_link, valor por defecto: button_count.

Pueden obtener los controles en la gallery de GeneXus.

Si se fijan el código de estos User Controls es muy simple, por lo cual pueden chequear la documentación de la JavaScript Client Library de Facebook y desarrollar el propio en base a sus necesidades.

* El presente post fue originariamente publicado en el Blog From Punta Espinillo to Tokio

GXplatform Gallery






 
Relacionado
GeneXus News 2.0
Canales 2.0
¿Su empresa tiene página en Facebook? ¿Cómo la mantiene actualizada?
Tweet: un user control para colocar twitter en sus objetos
Sigamos jugando… ¡Ahora Twitter!
Uruguay centraliza toda la información sobre comercio exterior e inversiones en Siicex, un portal desarrollado en GXportal y GeneXus
Curso de Seguridad en aplicaciones GeneXus
GeneXus X Evolution 3 Upgrade 2 Preview 3
GXquery 4.0 Upgrade 3 ¡Liberado!
LightCRM App para Windows Phone, Android e iOS desarrollada con GeneXus X Evolution 3 ¿La probaste?
¡919 certificados GeneXus! #GeneXusLoMejorDe2014
¡64 novedades en GeneXus MarketPlace!#GeneXusLoMejorDe2014
¡33 nuevas apps en el GeneXus ShowCase!#GeneXusLoMejorDe2014
¡23 Casos de éxito! #GeneXusLoMejorDe2014
Certificación SAP con GeneXus ERP Connector and Explorer #GeneXusLoMejorDe2014