9

me gustaría conseguir amigos de amigos a través de una llamada a la API y cuando trato de hacerlo, me sale el siguiente excepción,Obtención de amigos de amigos en la API gráfica FB

{ 
    "error": { 
     "type": "OAuthException", 
     "message": "(#604) Can't lookup all friends of .... Can only lookup for the logged in user (...), or friends of the logged in user with the appropriate permission" 
    } 
} 

La URL que estoy tratando de el acceso es,

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

estoy consiguiendo permisos que es de la siguiente manera extendida,

<fb:login-button perms="user_likes,friends_likes"></fb:login-button> 

¿Podría alguien decirme qué está pasando mal aquí? ¿O significa que nunca podré acceder a amigos de amigos?

+1

Derecha: No puede obtener acceso a Friends of Friends. –

+0

Me encantaría saber cómo hacer esto. Puedes hacerlo desde Facebook y la aplicación Facebook iPhone también lo permite. – senfo

+0

@Abhishek: Ahora es posible con fql para obtener amigos de amigos (limitado) .. He dado solución. –

Respuesta

-3

Lamentablemente, no puedo responderle específicamente porque no tengo experiencia con la API de FB. Sin embargo, creo que FB les permite a los usuarios ocultar quiénes son sus amigos. Si tienen este conjunto, entonces quizás no puedas acceder a sus amigos. Intenté modificar tu código para verificar primero cuáles son los permisos de un usuario dado y solo luego acceder a su lista de amigos si tienes acceso a él. Un poco de especulación aquí, sin embargo.

+0

Bueno, también traté de crear dos perfiles con todos los accesos a amigos y probarlos. Parece que no funciona :( – Abhishek

6

Actualmente, no hay ningún permiso extendido que le permita ver a los amigos amigos de un usuario. Los permisos "* _likes" solo te muestran las páginas de Facebook que los usuarios han querido.

Es posible que obtenga de forma iterativa y guarde en caché los amigos de cada uno de los amigos del usuario, uno por uno, pero sin tokens de acceso para cada amigo, solo podrá obtener datos públicos.

+0

Esta es la respuesta correcta. 100% –

-1

Puede obtener los amigos del usuario actual a través de una API de Graph llamada a me/friends. Necesitará cualquier access_token válido, sin permisos extendidos especiales, solo el básico. Hay una advertencia, ese usuario debe permitirle ver su lista de amigos. Por lo tanto, en la configuración de privacidad> Conexión en Facebook hay una configuración de "Ver a tu lista de amigos". Si el usuario eligió una configuración personalizada y seleccionó decir "Solo yo", obtendrá este error.

Del mismo modo, si el usuario actual permite que otros vean su lista de amigos, pero uno de los amigos lo cierra debido a problemas de privacidad, entonces no podrá ver ningún dato y obtendrá ese error.

Pude verificar los escenarios que he descrito.

+0

No sé por qué se rechaza esta respuesta. Es la respuesta correcta. Los mejores escenarios son amigos comunes, que se muestran aquí: http: // developers .facebook.com/docs/reference/rest/friends.getMutualFriends /. O usando el gráfico aquí: http://developers.facebook.com/tools/explorer/?method=GET&path=me%2Fmutualfriends%2F1207059 –

3

tengo amigos de amigos (limitado). Tuve el mismo problema Aunque es muy tarde para responder la pregunta, ayudará a alguien. Es por eso que estoy respondiendo esta pregunta.

Podemos hacer amigos de amigos que son usuarios de la aplicación. $ fb_id = id de usuario cuyos amigos de amigos requirieron.

$ consulta = "SELECT UID, nombre, work_history DE usuario DONDE UID EN (SELECCIONAR uid2 DE amigo DONDE uid1 IN (SELECT UID de usuario donde uid EN (SELECCIONAR uid2 DE amigo DONDE uid1 = $ fb_id) y is_app_user = 1)) "; $ user_info = $ facebook-> api (array ('method' => 'fql.query ', ' query '=> $ query));

@Olie:

esté recogiendo sus amigos de su amigo a través de la aplicación. Entonces, necesitaría el permiso de su amigo, cuyos amigos quiera. es decir, su amigo debería usar esa aplicación y aceptó esos permisos al tiempo que permite el acceso a la información. De lo contrario, no podrás amigos de tu amigo. He probado esta consulta. Y funciona con éxito.

"message": "(#604) Can't lookup all friends of .... Can only lookup for the logged in user (...), or friends of the logged in user with the appropriate permission" 

Este mensaje explica bien. Lea cuidadosamente.

Espero que comprenda los criterios de solución.

+0

No estoy siguiendo esto. Digamos que enumero mis amigos, y contienen fbID = 17, 24, 319 y 4027. Ahora lo haría me gustaría obtener una lista de los amigos de fbID = 319 (uno de mis amigos). Esto funciona en el sitio web de FB, pero no estoy logrando que funcione con su consulta. ¿Le estoy malinterpretando? – Olie

+0

@Olie: Tengo solución actualizada. –

1

Usted no puede obtener amigos de amigos, no está permitido debido a cuestiones de privacidad.

Una solución que hemos hecho antes es guardar a todos los usuarios amigos en nuestra propia base de datos. De esa manera podríamos hacer una referencia cruzada de los diferentes amigos de la lista de amigos y al menos obtener amigos de amigos que hayan utilizado la aplicación que hicimos.

Nota importante, una tabla de este tipo crecería rápidamente de manera considerable dependiendo de la cantidad de usuarios que reciba.

Cuente con que cada usuario tenga entre 250 y 300 amigos en promedio, por lo que si opta por una solución así, asegúrese de optimizar su base de datos, y entonces debería funcionar de maravilla.

Cuestiones relacionadas