2010-07-13 3 views
6

¿Alguien ha accedido con éxito a la lista de amigos de un usuario a través de Facebook Graph API?¿Accediendo a los amigos de un usuario a través de Facebook Graph API?

He escrito un código para autenticar usuarios en mi sitio web a través de la API OAuth de Facebook. Funciona espléndidamente Puedo acceder a información pública, me gusta, intereses, actividades, etc. Accedo a estos puntos de datos a través del siguiente formato URL, donde sustituyo "uid" con una identificación válida (uso el uid en lugar de "mí" porque "yo" no funciona como se anuncia):

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= ...

sin embargo, el acceso amigos, simplemente no funciona. La url,

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

devuelve el siguiente error:

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

Los ejemplos en la Graph API docs todo el trabajo, sin embargo, el token de acceso generada en esa página tiene un formato diferente a la mía. No estoy seguro por qué. He seguido sus instrucciones a la perfección (¡y tengo que trabajar para todo lo demás!).

Los amigos se consideran publicly accessible information, y he verificado dos veces los permisos de mi cuenta de Facebook, por lo que no creo que ese sea el problema.

Respuesta

0

Primero debe obtener el token de acceso. Ver:

Facebook Graph API — getting access tokens

+0

Estoy recuperando el token de acceso. Lo estoy usando para recuperar los datos de perfil público, me gusta, intereses y actividades. Indíqueme cómo se puede modificar mi publicación para que quede más claro. – thebossman

0

¿Dónde están consiguiendo que los amigos son de acceso público? Las preguntas frecuentes a las que se vinculó a los estados:

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.

No veo ninguna mención de amigos en ese párrafo.

+0

Tienes razón. Tenía la intención de vincular a: http://developers.facebook.com/docs/authentication/permissions "De forma predeterminada, su aplicación puede acceder a todos los datos públicos en el perfil de un usuario, incluyendo su nombre, foto de perfil, género y amigos " – thebossman

+0

El "por defecto" implica que puede acceder a esta información una vez que el usuario haya autenticado su aplicación. Es decir, el conjunto de permisos base (lo que obtiene cuando no solicita ámbitos/permisos adicionales) incluye esta información. Sin embargo, todavía necesita un 'access_token' para acceder. – daaku

+0

Ya veo, gracias.Parece que el access_token que recibo de la API no es válido. No estoy seguro de por qué ... – thebossman

0

El error que está viendo implica que el access_token no se está enviando. Esto también es probable por qué /me funciona para usted. También es probable que una vez que arregle eso, las conexiones de amigos se muestren como espera.

+0

Puede que tenga razón. Estoy siguiendo la documentación de Facebook a la perfección, pero obtengo un access_token que no se parece a la documentación en sí. Varias personas en este blog han comentado que tienen el mismo problema: http://benbiddington.wordpress.com/2010/04/23/facebook-graph-api-getting-access-tokens/ – thebossman

7

Si un usuario se conecta a su aplicación puede recuperar sus amigos, así:

$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']; 
     } 
    } 

pero sólo tiene acceso a la identificación y el nombre de los amigos.

+1

Esta publicación es un pedacito de cielo . – Mafia

Cuestiones relacionadas