• This documentation is valid for:

English Version
IMPORTANTE: Este control no esta disponible.
                       Si posee una descarga del control , debe saber que debido a cambios en el APi de facebook esta version no esta funcionando. Una nueva version será publicada 

Facebook User Control - Primeros pasos

Para facilitar el desarrollo de aplicaciones que puedan ser hosteadas en Facebook y que permitan interactuar con las funcionalidades que brinda, como por ejemplo amigos, profile, fotos, etc., Facebook nos provee de una API.

La API esta compuesta por un conjunto de métodos, que pueden ser ejecutados a través de internet enviando solicitudes HTTP POST y HTTP GET (REST), y que nos permiten entre otras cosas obtener la lista de amigos de un usuario, enviarles un mensaje, setear propiedades, etc.

Facebook y terceros, como por ejemplo Microsoft, han creado librerías sobre la API provista por Facebook para facilitar el desarrollo de aplicaciones en los ambientes más populares de desarrollo: C#, Java, PHP,  JavaScript, etc.

Aquí veremos qué debemos hacer para integrarnos con Facebook en un ambiente C#.

Dado que desarrollaremos una aplicación web para mostrar nuestros amigos debemos resolver la autenticación con Facebook de forma de garantizar la seguridad.

La idea principal es: ejecutar un web panel donde mostraremos los amigos del usuario logeado, en caso de no existir ningún usuario logeado en Facebook se redireccionara a la página de login de Facebook para el correspondiente login, y luego Facebook nos redireccionará nuevamente a nuestra aplicación con la información del usuario logeado.

Pero no debemos preocuparnos por la autenticación, dado que utilizaremos el Facebook User Control, el cual nos resuleve en su totalidad esta tarea.

Lo primero que debemos hacer para poder integrarnos y por lo tanto utilizar el Facebook User Control es crear una aplicación en Facebook siguiendo los siguientes pasos:

1. Debemos tener un usuario y agregar la Facebook Developer Application a nuestro Profile:

Add Facebbok Developer Application

2. Una vez que agregamos la Facebook Developer Application hacer click en "Set Up New Application":

Facebook Set Up New Application

3. Ingresar los datos relacionados a la aplicación que estamos creando. Dado que la intención no es hostear la aplicación en Facebook sino simplemente integrarnos desde nuestra aplicación las opciones que debemos ingresar son:

Facebook Set App Properties

Application Name: nombre de la aplicación
Callback URL: es la url de la aplicación que leerá la información del usuario enviada por Facebook, en nuestro caso: http://localhost/lqqd/MyFBFriends.aspx
Application type: Website

4. Al finalizar veremos una pantalla como esta:

Facebook Api Key

Para poder trabajar desde nuestra aplicación utilizando el Facebook User Control necesitaremos los valores API Key y Secret.

Una vez creada la aplicación en Facebook instalamos el Facebook User Control y comenzamos con el desarrollo de nuestra aplicación:

1. Creamos un web panel y arrastramos el Facebook User Control al web form. Tener en cuenta que el nombre del web panel debe corresponderse con la url que se coloco cuando se definió la aplicación en Facebook, en nuestro caso: MyFBFriends, dado que la CallBack url es http://localhost/lqqd/MyFBFriends.aspx, además el virtual directory en este caso debe llamarse lqqd.

2. Definir las siguientes variables para mostrar la información del usuario logeado en Facebook y para mostrar la lista de amigos:

Name Type
Friends Collection(FacebookUser)
Friend FacebookUser
FriendName Character(100)

3. Arrastrar al form la variable UserName y un Grid con la variable FriendName

4. Programar en el evento Start el llamado a la subrutina que definio el Facebook User Control para resolver la autenticación

Event Start 
    do 'FacebookLogin'
EndEvent

5. Programar el evento Load de forma de cargar los amigos

Event Load
    &UserFBSessionKey = &session.Get("facebook_session_key")
    &UserFBUserID = &session.Get("facebook_userId")
    if not &UserFBSessionKey.IsEmpty() and not &UserFBUserID.IsEmpty()
        &fbService.ApplicationKey = Keys.FACEBOOK_API_KEY
        &fbService.Secret = Keys.FACEBOOK_SECRET
        &fbService.IsDesktopApplication = false
        &fbService.SessionKey = &UserFBSessionKey
        &fbService.UserId = &UserFBUserID
        &friends = &fbService.GetFriends()
        for &friend in &friends                //Friends (collection) and Friends are based on FacebookUser Data type
            &FriendId = &friend.UserId
            &FriendName = &friend.FirstName + " " + &friend.LastName
            load
        endfor
    endif
EndEvent

En el load se invoca al metodo que devuelve los amigos (GetFriends). Para esto se requiere de los valores correspondientes de ApplicationKey y Secret obtenidos del dominio Keys (paso6) , y los valores de SessionKey y UserId obtenidos de la session y previamente cargados en la subrutina 'FacebookLogin'.

6. Cargar en el dominio enumerado Keys los valores correspondientes para FACEBOOK_API_KEY y FACEBOOK_SECRET de acuerdo a los valores de la aplication creada.

7. Hacer build del objeto

8. Copiar la Facebook.dll del directorio Facebook del modelo al directorio bin.

9. F5

10. Se deben visualizar los amigos del usuario.

Facebook Friends

Por más información:

http://developers.facebook.com/

http://developers.facebook.com/get_started.php

http://www.microsoft.com/express/samples/facebook/

http://www.codeplex.com/FacebookToolkit/Release/ProjectReleases.aspx?ReleaseId=5387