quinta-feira, 11 de junho de 2015

Obter o PageID (do Facebook) através do URL de uma página - em nodejs

Andava eu a tentar obter os likes de páginas do Facebook mas a única informação que tenho disponível é o URL das mesmas, poderia fazer algo mais chato e complexo como usar a API para obter as páginas do utilizador (autenticar, obter o token de acesso com permissões para obter as páginas, listar as páginas para o utilizador escolher qual quer) mas não faz sentido para o site em questão andar com esse trabalho.

Depois de alguma pesquisa descobri que é possível obter o ID do objecto através da API, aqui fica o snippet em nodejs (a lógica aplica-se a outras linguagens):

FB.api('/', {
 "id": url
}, function(res) {
 
 var pageId = res.id || res.og_object.id;
 
 if(!pageId) return next({message: 'Ups, algo correu mal'}, 0);
 
 FB.api(pageId, { fields: ['likes'] }, function(res) {
  
  if(!res || res.error || !res.likes) {
   return next(res.error, 0);
  }
  
  return next(null, res.likes);
 });
});

A biblioteca que estou a utilizar é: https://github.com/Thuzi/facebook-node-sdk/

Se alguém tiver uma solução mais interessante ou elegante coloque aí nos comments.

Nenhum comentário:

Postar um comentário