25

J'utilise the most recent version of the Facebook SDK (qui permet de se connecter à quelque chose appelé 'API graphique' mais je ne suis pas sûr). J'ai adapté le code d'exemple de Facebook pour me permettre de me connecter à Facebook et cela fonctionne ... mais je ne peux pas obtenir une liste de mes amis.Obtenir la liste des amis Facebook avec la dernière API

$friends = $facebook->api('friends.get'); 

Ce produit le message d'erreur: "Erreur fatale: Uncaught OAuthException: (# 803) Certains des alias que vous avez demandé n'existent pas: friends.get Renvoyé dans /mycode/facebook.php sur la ligne 543"

Aucune idée pourquoi cela est ou ce que cela signifie. Quelqu'un peut-il me dire la bonne syntaxe (pour la dernière API Facebook) pour obtenir une liste d'amis? (J'ai essayé "$ friends = $ facebook-> api-> friends_get();" et obtenir une erreur différente, "Erreur fatale: Appel à une fonction membre friends_get() sur un non-objet dans /mycode/example.php on ligne 129 ".)

Je peux confirmer que AVANT ce point dans mon code, les choses vont bien: je suis connecté à Facebook avec une session valide et je peux obtenir mes informations et le jeter à l'écran juste ... dire que ce code exécute parfaitement avant l'appel friends.get a échoué:

$session = $facebook->getSession(); 
if ($session) { 
    $uid = $facebook->getUser(); 
    $me = $facebook->api('/me'); 
} 
print_r($me); 

Répondre

59

Je pense que c'est ce que vous voulez:

$friends = $facebook->api('/me/friends'); 
+0

par hasard, vous savez comment obtenir la photo de profil de quelqu'un avec un appel api? quelque chose comme ... $ friends = $ facebook-> api ('/ idofosmefriend/image'); Et il y a de la documentation avec tous ces appels?, Merci! –

+0

@nfvs, savez-vous comment je peux accéder à friends_hometown? – alex

+13

Cela ne fonctionne plus avec Graph API v2 ou même les applications Graph API v1 héritées. Voir: https://developers.facebook.com/docs/graph-api/reference/v2.0/user/friends "Cela ne retournera que les amis qui ont utilisé (via Facebook Login) l'application faisant la demande." – goodies4uall

13

Ge La description des amis comme @nfvs est un bon moyen. Il génère un tableau multi-dimensionnel avec tous les amis avec les attributs id et name (classés par id). Vous pouvez voir les amis photos comme ceci:

foreach ($friends as $key=>$value) { 
    echo count($value) . ' Friends'; 
    echo '<hr />'; 
    echo '<ul id="friends">'; 
    foreach ($value as $fkey=>$fvalue) { 
     echo '<li><img src="https://graph.facebook.com/' . $fvalue->id . '/picture" title="' . $fvalue->name . '"/></li>'; 
    } 
    echo '</ul>'; 
} 
+0

travaillé! merci, juste une ligne a jeté une erreur pour moi .... dans la deuxième boucle foreach ... je l'ai changé pour le suivant, donc cela a fonctionné pour moi, echo '

  • Stevanicus

  • +0

    fonctionne selon votre suggestion et même mise à jour dans le code .. Merci Stevanicus & Geoffa – Elankeeran

    -3

    header ('Content-Type: text/html; charset = utf-8');

    entrée dans votre page.

    3

    Si vous souhaitez utiliser le point final REST,

    $friends = $facebook->api(array('method' => 'friends.get')); 
    

    autre si vous utilisez le graphique api, utilisez alors,

    $friends = $facebook->api('/me/friends'); 
    
    2

    Utilisez FQL à la place, est un type SQL, mais pour Les tableaux de données de Facebook et couvre facilement la requête de données que vous aimeriez faire. Vous n'aurez pas besoin d'utiliser tous ces appels/xx/xxx/xx, il vous suffit de connaître les tables et les colonnes dans lesquelles vous êtes interessé.

    $myQuery = "SELECT uid2 FROM friend WHERE uid1=me()"; 
    $facebook->api("/fql?q=" . urlencode($myQuery)) 
    

    Grands exemples interactifs à http://developers.facebook.com/docs/reference/fql/

    24

    ceci est une version en direct du Code PHP pour obtenir vos amis de Facebook

    <?php 
        $user = $facebook->getUser(); 
    
    
        if ($user) { 
         $user_profile = $facebook->api('/me'); 
         $friends = $facebook->api('/me/friends'); 
    
         echo '<ul>'; 
         foreach ($friends["data"] as $value) { 
          echo '<li>'; 
          echo '<div class="pic">'; 
          echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture"/>'; 
          echo '</div>'; 
          echo '<div class="picName">'.$value["name"].'</div>'; 
          echo '</li>'; 
         } 
         echo '</ul>'; 
        } 
    ?> 
    
    +0

    La documentation dit que, il montre les amis qui utilisent également votre application.J'ai essayé le code ci-dessus et obtenu ce résultat Voir leur lien: (Consultez la section read_friendlists) https://developers.facebook.com/docs/facebook-login/permissions/v2.2 –

    0

    Using CodeIgniter OAuth2/0.4.0 sparks,

    in Auth.php file,

    $user = $provider->get_user_info($token); 
    
    $friends = $provider->get_friends_list($token); 
    print_r($friends); 
    

    and in Facebook.php file under Provider, add the following function,

    public function get_friends_list(OAuth2_Token_Access $token) 
        { 
          $url = 'https://graph.facebook.com/me/friends?'.http_build_query(array(
            'access_token' => $token->access_token, 
          )); 
          $friends = json_decode(file_get_contents($url),TRUE); 
    
          return $friends; 
        } 
    
    prints the facebenter code hereook friends. 
    
    0
    friends.get 
    

    est-fonction pour obtenir une liste des

    ami Et oui c'est le meilleur

    $friends = $facebook->api('/me/friends'); 
    
        echo '<ul>'; 
        foreach ($friends["data"] as $value) { 
         echo '<li>'; 
         echo '<div class="pic">'; 
         echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture"/>'; 
         echo '</div>'; 
         echo '<div class="picName">'.$value["name"].'</div>'; 
         echo '</li>'; 
        } 
        echo '</ul>'; 
    
    7

    Juste un heads-up pour quiconque de tomber sur cette question en utilisant v2.0 de l'API graphique: Cette volonté ne fonctionne plus. En v2.0, appelant/moi/amis ne retourne une liste des amis de la personne qui utilise aussi l'application:

    • A user access token with user_friends permission is required to view the current person's friends.
    • This will only return any friends who have used (via Facebook Login) the app making the request.
    • If a friend of the person declines the user_friends permission, that friend will not show up in the friend list for this person.
    +2

    Y at-il un moyen d'obtenir une liste de tous les amis avec l'API 2.0 Graph? – Eric

    3

    dans la version récente de facebook sdk, facebook a désactivé la fonctionnalité qui vous permettent d'accéder certains une liste d'amis pour des raisons de sécurité ... consultez la documentation pour en savoir plus ...

    Questions connexes