2010-10-25 5 views
2

J'essaie d'obtenir une liste d'amis communs de moi-même et d'un autre utilisateur, mais aucune des API que j'ai trouvées dans la documentation ne fonctionne. Soit je reçois des erreurs d'autorisation étranges que je ne peux obtenir ma liste d'amis et aucun autre utilisateur ou je reçois l'erreur suivante:Comment puis-je obtenir la liste des amis communs sur Facebook en utilisant leur API?

Fatal error: Call to a member function friends_getMutualFriends() on a non-object in /home/app.php on line 27 

est-il un moyen standard qui est utilisé pour obtenir le nombre total d'amis communs ou au moins la liste des amis de mon ami?

Répondre

3

Ok ... Celui-ci m'a donné un vrai moment difficile. J'ai réussi à le faire en utilisant le Facebook JS SDK. Voici l'extrait juste au cas où quelqu'un d'autre veut faire ceci:

FB.api(
      { 
      method: 'fql.query', 
      query: 'SELECT id FROM profile WHERE id IN (SELECT uid2 FROM friend WHERE uid1=me())' 
      }, 
      function(response) { 
      $.each(response, function(json) { 
       console.info(response[json].id); 
         FB.api(
          { 
          method: 'friends.getMutualFriends', 
          target_uid: 'INSERT ANOTHER FRIEND ID HERE' 
          }, 
          function(response) { 
          console.info(response); 
          } 
         ); 
       return false; 
      }); 

      } 
     ); 
+0

Lorsque vous dites "insérer un autre ami id ici", devrait-il être la réponse [json] .id? Quel autre id serait-ce? – Andre

-1

Eh bien, c'est en réalité friends.getMutualFriends().

Avoir un jeu here.

+0

@Marko: Cela me donne la même erreur. J'essaie: '$ mutual_friends = $ facebook-> api_client-> friends_getMutualFriends (xxx, yyy);' où xxx est mon identifiant ... Est-ce que je fais quelque chose de mal? Ou pourriez-vous me donner un petit exemple? Le terrain de jeu dans l'URL que vous avez pointé me donne cette erreur: 'Cet appel API n'a pas pu être terminé en raison des limites de ressources ',' – Legend

+0

Pourquoi utilisez-vous un trait de soulignement plutôt qu'un point? Friends **. ** getMutualFriends – Marko

+0

@Marko : J'ai essayé l'autre aussi ...J'obtiens la même erreur: 'Erreur irrécupérable: appel à une fonction membre getMutualFriends() sur un non-objet dans /home/app.php sur la ligne 27'. J'ai inclus le fichier 'facebook.php' que j'ai téléchargé sur le site Web. – Legend

0

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.

Legend étant donné que la réponse ne donne que des amis communs pour un ami. J'ai donné une solution qui donne des amis communs d'utilisateur (ami ou ami d'ami).

Vous avez demandé mutual friends of myself and another user (pas seulement un ami) et en PHP. donc ci-dessous est la solution:

$ source_id = utilisateur actuel

$ target_id = ami ou un ami d'un ami

$query="SELECT uid, name, work FROM user WHERE uid IN 
(SELECT uid2 FROM friend WHERE uid1 = $source_id and uid2 IN (SELECT uid2 FROM friend WHERE uid1 = $target_id)) ORDER BY name"; 
      $freinds_list=$this->facebook->api(array('method'=>'fql.query', 
        'query'=>$query)); 
5

Cela vous donnera une liste des amis communs:

$mutual_friends = $facebook->api('/me/mutualfriends/friendid'); 
1

Cela fonctionne 2016/JAN

https://graph.facebook.com/v2.5/[USER_FRIEND_ID]?limit=100&fields=context.fields(mutual_friends.limit(100))&access_token=[YOUR_USER_TOKEN]

Le résultat est un Json avec vos amis communs. Travailler dans Graph v2.4 et v2.5 bien.

PS: Si vous recherchez ALL_mutual_friend est amis sans la même application instalé Mutual_friends -> utilisateurs de stand vous de jeton de session et un autre dans la requête ont l'application AUTORISEE.

nouveau champ facebook utilisateur.contexte https://developers.facebook.com/docs/graph-api/reference/user-context/

(utilisation graphique Explorer pour Tester)

facebook graph test mutual

Questions connexes