2010-07-13 4 views
6

Est-ce que quelqu'un a accédé avec succès à la liste des amis d'un utilisateur via l'API Facebook Graph?Accéder aux amis d'un utilisateur via l'API Facebook Graph?

J'ai écrit du code pour authentifier les utilisateurs sur mon site Web via l'API OAuth de Facebook. Cela fonctionne magnifiquement; Je peux accéder aux informations publiques, goûts, intérêts, activités, etc. J'accède à ces points de données via le format d'URL suivant, où je remplace "uid" par un id valide (j'utilise l'uid à la place de "moi" parce que "moi" ne fonctionne pas comme annoncé):

https://graph.facebook.com/uid?access_token= ...
https://graph.facebook.com/uid/likes?access_token= ...
https://graph.facebook.com/uid/interests?access_token= ...
https://graph.facebook.com/uid/activities?access_token= ...

Cependant, simplement un accès amis ne fonctionne pas. L'URL,

https://graph.facebook.com/uid/friends?access_token= ...

renvoie l'erreur suivante:

{ 
    "error": { 
     "type": "OAuthAccessTokenException", 
     "message": "An access token is required to request this resource." 
    } 
} 

Les exemples sur le Graph API docs tous les travaux, mais le jeton d'accès généré sur cette page a un format différent que le mien. Je ne suis pas sûr pourquoi. J'ai suivi leurs instructions à un tee (et l'ai fonctionné pour tout le reste!).

Les amis sont considérés comme publicly accessible information, et j'ai vérifié les autorisations de mon compte Facebook, donc je ne pense pas que ce soit le problème.

Répondre

0

Vous devez d'abord obtenir le jeton d'accès. Voir:

Facebook Graph API — getting access tokens

+0

Je récupère le jeton d'accès. Je l'utilise pour récupérer les données de profil public, goûts, intérêts et activités. S'il vous plaît laissez-moi savoir comment mon message peut être modifié pour le rendre plus clair. – thebossman

0

Où êtes-vous que les amis sont accessibles au public? La FAQ que vous avez lié aux états:

Publicly available information includes your name, profile picture, gender, and networks. This information makes it easier for friends, family, and other people you know to connect with you.

Je ne vois aucune mention d'amis dans ce paragraphe.

+0

Vous avez raison. «Par défaut, votre application peut accéder à toutes les données publiques du profil d'un utilisateur, y compris son nom, son profil, son sexe et ses amis. " – thebossman

+0

Le "par défaut" implique que vous pouvez accéder à cette information une fois que l'utilisateur a authentifié votre application. Autrement dit, le jeu d'autorisations de base (ce que vous obtenez lorsque vous ne demandez aucune étendue/autorisation supplémentaire) inclut cette information. Vous avez toujours besoin d'un 'access_token' pour y accéder. – daaku

+0

Je vois, merci.Il semble que le message access_token I reçu de l'API est invalide. Je ne sais pas pourquoi ... – thebossman

0

L'erreur que vous voyez implique que le access_token n'est pas envoyé. C'est aussi probablement pourquoi /me ne fonctionne pour vous. Il est également probable qu'une fois que vous aurez résolu cela, les connexions des amis apparaîtront comme prévu.

+0

Vous avez peut-être raison. Je suis la documentation de Facebook à un tee, pourtant j'obtiens un access_token qui ne ressemble pas à cela sur la documentation elle-même. Plusieurs personnes sur ce blog ont commenté avoir le même problème: http://benbiddington.wordpress.com/2010/04/23/facebook-graph-api-getting-access-tokens/ – thebossman

7

Si un utilisateur se connecte à votre application, vous pouvez récupérer leurs amis comme ceci:

$facebook = new Facebook(array(
       'appId' => 'xxxxxxxx', 
       'secret' => 'xxxxxxx', 
       'cookie' => true, 
      )); 

    // $session is only != null, when you have the session-cookie, that is set by facebook, after the user logs in 
    $session = $facebook->getSession(); 

    // you dont get a list of friends, but a list, which contains other friendlists 
    $friendsLists = $facebook->api('/me/friends'); 

    foreach ($friendsLists as $friends) { 
     foreach ($friends as $friend) { 
     // do something with the friend, but you only have id and name 
     $id = $friend['id']; 
     $name = $friend['name']; 
     } 
    } 

Mais vous n'avoir accès à id et le nom des amis.

+1

Ce post est un petit coin de paradis . – Mafia

Questions connexes