2010-06-09 5 views
7

En utilisant l'API Graph de Facebook, avec un nom d'utilisateur xyz (en supposant qu'ils ont authentifié mon site), comment obtenir une liste de toutes les pages facebook que l'utilisateur administre?Facebook Graph API + Pages Facebook

Répondre

0

@rmorrison - Ce n'est pas API graphique bien. Avec le nouvel ajout "like", vous pouvez utiliser cette URL: h ttps: //graph.facebook.com/me/likes? Access_token = blah! ou h ttps: //graph.facebook.com/USER_ID/likes? access_token = blah!

+0

Il ne cherche pas de "j'aime", il cherche des pages que l'utilisateur administre. –

+0

Savez-vous comment effectuer une action similaire sur une page? – WoodenKitty

15

La accounts propriété sur l'objet user dit:

Les pages Facebook appartenant à l'utilisateur actuel. Si l'autorisation manage_pages a été accordée, cette connexion génère également access_tokens qui peut être utilisé pour interroger l'API Graph au nom de la page.

http://developers.facebook.com/docs/reference/api/user

+0

Ooh cela doit être nouveau ... jamais remarqué cette connexion avant! Bien, je ne suis pas sûr que ce soit la bonne réponse. Vous pouvez être un administrateur sur une page sans être le «propriétaire». –

+0

Il me semble être la bonne réponse, il renvoie toutes les pages sur lesquelles je suis administrateur, même celles que je n'ai pas créées moi-même. – dar

5

Après avoir obtenu jeton d'accès, vous pouvez obtenir tous les détails de la liste de toutes les pages facebook que l'utilisateur administre.

https://graph.facebook.com/[FACEBOOKUSERID]?metadata=1&access_token= 

La sortie ressemblera

{ 
    "name": "Facebook Developer Garage Austin - SXSW Edition", 
    "metadata": { 
     "connections": { 
     "feed": "http://graph.facebook.com/331218348435/feed", 
     "picture": "https://graph.facebook.com/331218348435/picture", 
     "invited": "https://graph.facebook.com/331218348435/invited", 
     "attending": "https://graph.facebook.com/331218348435/attending", 
     "maybe": "https://graph.facebook.com/331218348435/maybe", 
     "noreply": "https://graph.facebook.com/331218348435/noreply", 
     "declined": "https://graph.facebook.com/331218348435/declined" 
     } 
    } 
} 
+0

J'ai vu vos "métadonnées" ici par hasard, et j'ai finalement trouvé comment trouver les connexions d'un objet utilisateur - je ne peux m'empêcher de me demander pourquoi cette collection de métadonnées est introuvable sur les documents officiels fb (du moins si vous ne savez pas quoi chercher). ty, même si mon problème était seulement connecté à distance. – kontur

+0

C'est génial d'entendre que votre problème a résolu.Votre bienvenue. – PrateekSaluja

0

FqL est la meilleure façon d'obtenir les pages de l'utilisateur pour lequel il est l'administrateur. Comme les autres aiment les goûts de l'utilisateur donnera toutes les pages que l'utilisateur aime.

1

Voici ce que j'utilise. Cela fonctionne parfaitement

$pages = $facebook->api(array('method' => 'fql.query','query' => 'SELECT page_id FROM page_admin WHERE uid = '.$uid.'')); 

foreach($pages as $k=>$v) { 
    echo 'page id#:'.$v['page_id'].'<br/>'; 
} 

Ceci est bien sûr après que vous avez créé la session pour l'utilisateur fb! Le $uid serait le numéro d'identification de profil de l'utilisateur facebook spécifique, votre retour d'une liste de pages gérées pour.

4

Utilisez une requête fql! C'est le meilleur moyen d'obtenir les pages pour lesquelles l'utilisateur est administrateur. Vous serez également en mesure de restreindre les noms aussi. i.e pages avec des noms vides Un exemple de requête fql qui vous donne également les détails de la page.

SELECT page_id,page_url,name,pic_square FROM page WHERE page_id IN (SELECT page_id FROM page_admin WHERE uid = " + **UserId** + ") and name!='' 

UserId - Id de l'admin

NOTE Cette méthode ne fonctionne pas à partir de la version 2.1 du graphique api comme fqï a été dépréciée à partir de cette version partir

0

Vous pouvez obtenir la liste des pages à partir d'un simple hit Facebook Graph API.

https://graph.facebook.com/{user-id}/accounts?access_token={access-token} 

Il donnera une liste de pages pour l'utilisateur qu'il/elle a créé.

Questions connexes