"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."
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:
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:
Obter credenciais OAuth.
Dar permissão para outros desenvolvedores e beta-testers.
Criar beta-testers falsos e "impersonar" essas contas.
Escolher quais permissões serão requeridas dos usuários.
Fazer filtros de usuários por IP e/ou localização.
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:
Consultas por path (se autenticadas trazem mais informações de um objeto)
FQL (Facebook Query Language)
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:
Queries mais complexas com subqueries.
Funções prontas como me(), now(), strlen(), substr() e strpos().
Customização da saída.
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()