Cada vez es más común utilizar redes sociales en nuestras aplicaciones, en este ejemplo explicaremos como acceder a facebook desde java utilizando el api facebook4j.

Paso 1 Crear la cuenta

Sabemos que muchos de nosotros ya contamos con nuestra cuenta, pero es necesario registrar nuestra aplicación dentro del sitio de desarrolladores de Facebook en el siguiente link https://developers.facebook.com/docs/graph-api.

Una vez hecho esto debemos contar con los siguientes datos:

  • Application id :
  • Secret id:
  • Token id: Puedes generarlo aquí

Paso 2 Configurar el proyecto

El siguiente paso será configurar el proyecto para esto veamos nuestro archivo pom.xml. Y agregar las siguientes líneas para configurar nuestro cliente de Facebook:

Facebook facebook = new FacebookFactory().getInstance();
		facebook.setOAuthAppId("app id", "secret id");
		facebook.setOAuthAccessToken(new AccessToken("your access tocken"));

Con las líneas anteriores tendremos listo para usar nuestro cliente de Facebook.

Paso 3 Utilizar el cliente de Facebook

En esta sección mostraremos algunos de los métodos disponibles en el api.

Ver amigos

Para ver la lista de tus amigos ejecutarás lo siguiente:

ResponseList friends = facebook.getFriends();
for (Friend friend : friends) {
	System.out.println(friend);
}

Salida :

FriendJSONImpl extends UserJSONImpl [id=1111111, name=Friend name, firstName=null, middleName=null, lastName=null, gender=null, locale=null, languages=[], link=null, username=null, thirdPartyId=null, timezone=null, updatedTime=null, verified=null, bio=null, birthday=null, cover=null, education=[], email=null, hometown=null, interestedIn=[], location=null, political=null, favoriteAthletes=[], favoriteTeams=[], picture=null, quotes=null, relationshipStatus=null, religion=null, tokenForBusiness=null, significantOther=null, videoUploadLimits=null, website=null, work=[], ageRange=null]
.....

En la salida anterior podemos darnos cuenta del tipo de información que podremos obtener.

Obtener mis posts

System.out.println("\tGetting my posts\n");
ResponseList feed = facebook.getFeed();
for (Post post : feed) {
	System.out.println(post);
}

Lo anterior mostrará una salida como la siguiente:

PostJSONImpl{id='100000436331886_1821178564573337', from=null, to=[], message='Actúa natural para la foto 😅', messageTags=[], picture=null, fullPicture=null, link=null, name='null', caption='null', description='null', source=null, properties=[], icon='null', actions=[], privacy=null, type='null', sharesCount=null, likes=PagableListImpl{count=null, paging=null, summary=null, []}, place=null, statusType='null', story='null', storyTags={}, withTags=[], comments=PagableListImpl{count=null, paging=null, summary=null, []}, attachments=[], objectId='null', application=null, createdTime=Sat Mar 03 11:50:03 CST 2018, updatedTime=null, isPublished=null, isHidden=null, scheduledPublishTime=null, targeting=null, permalinkUrl=null}

La salida anterior podemos darnos cuenta del tipo de información que podremos obtener.

Obtener posts de otras cuentas

System.out.println("\tGetting cool posts\n");
ResponseList geeksFeed = facebook.getFeed("geeksJavaMexico");
for (Post post : geeksFeed) {
	System.out.println(post);
}

Lo anterior mostrará una salida como la siguiente:

PostJSONImpl{id='1135265379951652_1320846304726891', from=null, to=[], message='Hola Geeks! Queremos compartirles que entramos al concurso de kaspersky y quedamos seleccionados entre los mejores 25 proyectos deséenos suerte 🤓🇲🇽 https://kasperskystart.mx/', messageTags=[], picture=null, fullPicture=null, link=null, name='null', caption='null', description='null', source=null, properties=[], icon='null', actions=[], privacy=null, type='null', sharesCount=null, likes=PagableListImpl{count=null, paging=null, summary=null, []}, place=null, statusType='null', story='null', storyTags={}, withTags=[], comments=PagableListImpl{count=null, paging=null, summary=null, []}, attachments=[], objectId='null', application=null, createdTime=Wed Mar 14 12:42:33 CST 2018, updatedTime=null, isPublished=null, isHidden=null, scheduledPublishTime=null, targeting=null, permalinkUrl=null}

La salida anterior podemos darnos cuenta del tipo de información que podremos obtener.

Puntos importantes a considerar

 

Si tienes preguntas sobre el graph api de Facebook puedes ver su faq https://developers.facebook.com/docs/graph-api/faq,  es importante que consideres los endpoints que han sido marcados como deprecated por Facebook, un ejemplo claro son las búsquedas.