9

Je voudrais faire des amis d'amis via un appel API et lorsque je tente de le faire, je reçois l'exception suivante,Obtenir des amis d'amis dans l'API graphique 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" 
    } 
} 

L'URL Je suis en train de l'accès est,

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

Je reçois des autorisations étendu est la suivante,

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

Quelqu'un peut-il s'il vous plaît laissez-moi savoir ce qui ne va pas ici? Ou est-ce que cela signifie que je ne peux jamais avoir accès à des amis d'amis?

+1

À droite: Vous ne pouvez pas accéder aux amis des amis. –

+0

J'aimerais savoir comment faire cela. Vous pouvez le faire à partir de Facebook et l'application iPhone Facebook le permet également. – senfo

+0

@Abhishek: Maintenant il est possible avec fql d'avoir des amis d'amis (limités) .. J'ai donné une solution. –

Répondre

-3

Malheureusement, je ne peux pas vous demander votre réponse car je n'ai pas d'expérience avec l'API FB. Cependant, je crois que FB permet aux utilisateurs de cacher qui sont leurs amis. S'ils ont cet ensemble, alors peut-être que vous ne pourrez pas accéder à leurs amis du tout. J'essaierais de modifier votre code pour d'abord vérifier quelles sont les permissions d'un utilisateur donné et ensuite seulement accéder à sa liste d'amis si vous y avez accès. Un peu de spéculation ici, cependant.

+0

Eh bien, j'ai aussi essayé de créer deux profils avec tous les accès aux amis et de le tester. Cela ne semble pas fonctionner :( – Abhishek

6

Actuellement, aucune permission étendue ne vous permet de voir les amis d'un utilisateur. Les autorisations "* _likes" vous montrent simplement les pages Facebook que les utilisateurs ont aimé.

Il vous sera peut-être possible de récupérer par itérature et de mettre en cache les amis de chacun des amis de l'utilisateur, un par un, mais sans les jetons d'accès pour chaque ami, vous ne pourrez récupérer que les données publiques.

+0

100% –

-1

Vous pouvez obtenir les amis de l'utilisateur actuel via un appel API Graph pour moi/amis. Vous aurez besoin d'un access_token valide, pas d'autorisations étendues spéciales, juste celles de base. Il y a une mise en garde, cet utilisateur doit vous permettre de voir sa liste d'amis. Ainsi, dans les paramètres de confidentialité> Connexion sur Facebook, il y a un paramètre "Voir votre liste d'amis". Si l'utilisateur a choisi un paramètre personnalisé et sélectionné "Only Me", vous obtiendrez cette erreur. De même, si l'utilisateur actuel autorise les autres utilisateurs à voir sa liste d'amis, mais qu'un de ses amis la ferme en raison de problèmes de confidentialité, vous ne pourrez voir aucune donnée et vous obtiendrez cette erreur.

J'ai pu vérifier les scénarios que j'ai décrits.

+0

Je ne sais pas pourquoi cette réponse est rejetée, c'est la bonne réponse Les meilleurs scénarios sont les amis communs, montrés ici: http: // developers .facebook.com/docs/reference/rest/friends.getMutualFriends /. Ou en utilisant le graphique ici: http://developers.facebook.com/tools/explorer/?method=GET&path=me%2Fmutualfriends%2F1207059 –

3

je suis arrivé amis d'amis (limité). J'ai eu le même problème. Bien qu'il soit très tard pour répondre à une question, cela aidera quelqu'un. C'est pourquoi répondre à cette question.

Nous pouvons obtenir des amis d'amis qui sont les utilisateurs de l'application. $ fb_id = identifiant dont les amis des amis sont requis.

$ query = "SELECT uid, nom, work_history FROM user OU uid IN (SELECT UID2 d'un ami OÙ UID1 IN (SELECT uid FROM user OU uid DANS (SELECT UID2 d'un ami OÙ UID1 = $ fb_id) et is_app_user = 1)) "; $ user_info = $ facebook-> api (array ('method' => 'fql.query ', ' query '=> $ query));

@Olie:

Vous récupérez vos amis de vos amis grâce à l'application. Donc, vous auriez besoin de la permission de votre ami dont vous voulez les amis. Par exemple, votre ami doit utiliser cette application et accepter cette autorisation tout en autorisant l'accès aux informations. Sinon, vous ne serez pas en mesure d'amis de votre ami. J'ai testé cette requête. Et cela fonctionne avec succès.

"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" 

Ce message explique bien. Lire attentivement.

Espérons que vous comprenez les critères de la solution.

+0

Je ne suis pas tout à fait suite à ceci Dites que je liste mes amis, et ils contiennent fbID = 17, 24, 319 et 4027. Maintenant je voudrais Je voudrais avoir une liste des amis de fbID = 319 (un de mes amis.) Cela fonctionne sur le site web de FB, mais je ne comprends pas comment utiliser votre requête, est-ce que je vous ai mal compris? – Olie

+0

@Olie: J'ai solution mise à jour. –

1

Vous ne pouvez pas obtenir des amis d'amis, ce n'est pas autorisé en raison de problèmes de confidentialité.

Une solution de contournement que nous avons déjà fait est de sauvegarder tous les utilisateurs amis à notre propre base de données. De cette façon, nous pourrions croiser toutes les listes d'amis des différents utilisateurs et au moins obtenir des amis d'amis qui ont utilisé l'application que nous avons faite.

Remarque importante, une telle table deviendrait rapidement assez importante en fonction de la quantité d'utilisateurs que vous obtenez. Comptez sur chaque utilisateur ayant environ 250-300 amis en moyenne, donc si vous optez pour une telle solution, assurez-vous d'optimiser votre base de données pour cela, et cela devrait fonctionner parfaitement.

Questions connexes