The answer from @FelipeAvelar is correct, it did not include attending
at the end of the query.
Anyway, I've prepared an example with based on my other answer . There is important additional information (which I will purposely avoid repeating here) about how to create your Facebook application and how to simulate the page locally.
The HTML and Javascript files below illustrate a solution for counting (and listing) users who indicated participation in a public event (or your profile, since you have access token ). To illustrate, I used the SBGames 2014 event .
HTML file
<html>
<head>
<title>Teste de Participantes</title>
<script type="text/javascript" src="facebook.js"></script>
</head>
<body>
<!--
Inicialização assíncrona da biblioteca javascript para o Facebook
(conforme documentação: https://developers.facebook.com/docs/javascript/quickstart),
com login automático e obtenção do token de acesso.
-->
<div id="fb-root"></div>
<script>
/** Armazena o token de acesso */
var gsAccessToken = "";
/**
* Função de inicialização e login no Facebook.
* NOTA: Essa função é apenas necessária para acesso a recursos com privacidade controlada
* (que requer o uso do token de acesso).
* Para ESTE teste (com o evento público), essa função pode ser simplesmente
* comentada (ou removida) que a consulta funciona da mesma forma.
*/
window.fbAsyncInit = function() {
// Inicio da biblioteca do FB (com definição do ID da página Web)
FB.init({
appId : '1401642456751870', // ID da página Web criada no App Center
status : true,
xfbml : true
});
// Requisição ao usuário do login no FB
FB.login(function(oResponse) {
if(oResponse.authResponse) {
gsAccessToken = FB.getAuthResponse()['accessToken'];
console.log('Token de acesso = '+ gsAccessToken);
FB.api('/me', function(oResponse) {
console.log('Bem-vindo, ' + oResponse.name + '!');
});
}
else
console.log('O usuário cancelou o login ou não autorizou completamente.');
}, {scope: ''});
};
// FIM DA FUNÇÃO DE INICIALIZAÇÃO E LOGIN (que pode ser comentada se desejado)
/*
* Carregamento assíncrono do arquivo js com a api do FB
* (note o uso de 'pt_BR' na URL, para janelas de login/permissão localizadas).
*/
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/pt_BR/all.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<!-- Função de callback para exibição do total de likes. -->
<script>
function displayParticipants(iParticipants) {
alert("Participantes no Evento: " + iParticipants);
}
</script>
<!--
Testa com o evento do SBGames 2014:
https://www.facebook.com/events/648697541847684/
O ID é facilmente obtido da própria URL acima.
-->
<button onclick="queryParticipants('648697541847684', displayParticipants);">Consulta Participantes do SBGames 2014</button>
</body>
</html>
Javascript File
/**
* Função de consulta dos participantes de um evento do Facebook.
* @param sResourceID Identificador do Facebook para o evento.
* @param oCallback Função de callback com a assinatura function(iParticipants) a ser chamada com o resultado
* da consulta.
*/
function queryParticipants(sResourceID, oCallback) {
var oCounter = { participants: 0 };
// Consulta o número de participantes do evento
FB.api("/" + sResourceID + "/attending",
function(oResponse) {
console.log(oResponse);
outputParticipants(oResponse.data);
queryResponse(oCounter, oResponse.data.length, oResponse.paging.next, oCallback);
}
);
}
/**
* Função recursiva para contagem acumulada dos participoantes em múltiplas páginas.
* @param oCounter Objeto para manter a contagem dos participantes entre as chamadas.
* @param iParticipants Número de participantes da atualização da paginação atual recebida do Facebook.
* @param sNext String com o link para a próxima paginação ou null se não existir mais paginações.
* @param oCallback Função de callback com a assinatura function(iParticipants) a ser chamada com o resultado
* da consulta.
*/
function queryResponse(oCounter, iParticipants, sNext, oCallback) {
oCounter.participants += iParticipants;
if(sNext != null) {
FB.api(sNext,
function(oResponse) {
outputParticipants(oResponse.data);
queryResponse(oCounter, oResponse.data.length, oResponse.paging.next, oCallback);
}
);
}
else
oCallback(oCounter.participants);
}
/**
* Função utilitária para 'imprimir' no console os nomes (e IDs) dos participantes do evento.
* @param aData Array com os objetos de usuários que indicaram participação no evento.
*/
function outputParticipants(aData) {
for(var i = 0; i < aData.length; ++i) {
var oUser = aData[i];
console.log(oUser.name + "(" + oUser.id + ")");
}
}
Result