88 votes

Facebook: obtenir la liste des pages qu'un utilisateur est administrateur de

J'utilise le graphique api.

J'ai un utilisateur connecté et je souhaite obtenir une liste des identifiants de page de toutes les pages dont l'utilisateur est un administrateur.

Y-a-t'il une façon de le faire? Les docs sont plutôt mauvais - et circulaires.

150voto

Avi C Points 3224

Sa simple avec Graph_API. Les étapes-

  1. obtenez de l' "manage_pages" la permission de l'Utilisateur (autorisations étendues)

  2. graphe d'appel à l'API https://graph.facebook.com/me/accounts

-c'est tout

U peut tester cette procédure dans cette page -> cliquez Simplement sur "Obtenir un Jeton d'Accès' bouton-> sous 'Étendue de l'autorisation' vérifier 'manage_pages' & de le soumettre. Il vous donnera l'admin de la page de détails du JSON.

14voto

EoghanM Points 4383

Je l'ai résolu avec un peu de FQL:

 FB.api({method: 'fql.multiquery',
        access_token: <access_token>,
        queries: {
            query1: 'select page_id from page_admin where uid = ' + <uid>,
            query2: 'select page_id, name, page_url from page where page_id in (select page_id from #query1)'
        }
       }, function(queries){
           var pages = queries[1].fql_result_set;
       }}
 

11voto

Arms Points 8729

Vous pouvez appeler FB.api(/me/accounts) si vous ne souhaitez pas utiliser FQL.

'comptes' est une connexion de l'Utilisateur de l'objet. Consultez la documentation de ce @ http://developers.facebook.com/docs/reference/api/user

Bien sûr, avec Facebook, il y a toujours un hic. Droit maintenant, cette méthode ne renvoie pas seulement les pages que l'utilisateur est un administrateur, mais aussi ce que les applications qu'ils ont installé. Je suis presque certain que ce n'est PAS le comportement attendu - il me semble me rappeler à l'aide de cette il y a quelques mois et seulement obtenir une liste de pages. La documentation ne fait aucune mention des demandes dans cette liste.

C'est un problème facile à résoudre si - Facebook renvoie le nom, la catégorie, et l'identification pour chaque élément de la liste, et chaque application a une catégorie de l '"Application". Je suis tout simplement faire en sorte que je ne lister que les éléments dont la catégorie n'est pas l '"Application".

7voto

Mohamed Turki Points 699

Vous demandez la permission avec le SDK JavaScript lors de la connexion

 FB.login(function(){}, {perms:'manage_pages'});
 

et une fois qu’ils se sont connectés, vous pouvez récupérer les pages (et les applications) comme suit:

 FB.api('/me/accounts', function(response){
    console.log(response);
})
 

5voto

dbau Points 3439

Notez que votre solution renvoie des pages ainsi que des applications . Si vous voulez strictement Pages, vous pouvez utiliser FQL Multiquery avec une clause "Type not equals" comme ceci:

 {
"query1":"select page_id from page_admin where uid = me()",
"query2":"select page_id, name, page_url, type from page where type!='APPLICATION' AND page_id in (select page_id from #query1)"
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X