Obtenção de dados do Facebook


Gabriel Pugliese - @gabrielsapo
nUSP: 5639061
Paulo Cheadi Haddad Filho - @paulochf
nUSP: 5210744

Facebook

News Feed


Open Graph

opg.me

O que é Open Graph Protocol

"The Open Graph protocol enables any web page to become a rich object in a social graph. For instance, this is used on Facebook to allow any web page to have the same functionality as any other object on Facebook."

Propriedades de meta tags básicas:

Testando as meta tags

developers.facebook.com/tools/debug

meta property="og:url" content="http://socialattend.com/"
meta property="og:title" content="Social Attend"
meta property="og:description" content="Procure eventos da sua área 
de atuação e conecte-se com pessoas em comum 
através das redes sociais!"
				

Built-in types

É possivel tornar uma página qualquer em um objeto comum dentro do "grafo social" utilizando a propriedade og:type. Exemplo:

meta property="og:type" content="video.movie"
				

Pages

facebook.com/pages

Interagindo com os fans, analisando suas atitudes


Apps

developers.facebook.com/apps

O que é um App ?

Apps são páginas HTML dentro de um iframe no Facebook, chamado de canvas.

Para começar como desenvolvedor

É necessário cadastrar um aplicativo dentro da página de Apps do Facebook para desenvolver algo. Até mesmo para fazer uma página com um botão de "Entrar com o Facebook".

Após a criação de um App, é possível:

Graph API

developers.facebook.com/docs/reference/api/

Utilizando o API Explorer

Antes de começar as mexer em código, é possível utilizar o console para desenvolvedores do próprio Facebook:

developers.facebook.com/tools/explorer

Todas as consultas de usuários são restritas por permissões dadas para sua aplicação, exceto informações públicas.

Utilizando o Graph API, podemos obter resultados de duas maneiras:

Exemplo de permissões


Consultas por path

Obtendo dados públicos de um usuário:

GET https://graph.facebook.com/gabrielsapo
				

Consultas por path

Obtendo dados públicos de uma Facebook Page:

GET https://graph.facebook.com/siteapps
                

Consultas pelos objetos

Obtendo dados públicos de uma página:

GET https://graph.facebook.com/http://socialattend.com/
				

FQLs

É necessário obter uma chave de acesso (OAuth2.0) para fazer requisições através de FQLs. Portanto, não é possível obter informações públicas sem autenticação por este método.

Esse tipo de consulta oferece um "poder maior" ao desenvolvedor:

Porém, é necessário conhecimento prévio de SQL para poder utilizá-lo.

Consultas por FQLs

GET https://graph.facebook.com/?fql=XXXX&access_token=YYYYY
                

Buscar as friendlists no API Explorer (necessita permissão "read_friendlists"):

select uid, flid from friendlist_member
where flid in
(select flid from friendlist where owner=me())
limit 10000
                

Consultas por FQLs

Buscar meus interesses diversos (necessita permissão "user_likes"):

select movies, music, books, tv, games, sports, 
favorite_teams, inspirational_people, interests, political 
from user where uid = me()
                

restfb (cliente Java)

restfb.com

Utilizando o restfb

FacebookClient facebookClient = 
    new DefaultFacebookClient(MY_ACCESS_TOKEN);
// OU
FacebookClient publicOnlyFacebookClient = new DefaultFacebookClient();

// Exemplos
User user = facebookClient.fetchObject("me", User.class);
Page page = facebookClient.fetchObject("cocacola", Page.class);

out.println("User name: " + user.getName());
out.println("Page likes: " + page.getLikes());
                

Obrigado