Question

J'utilise la version la plus récente du SDK Facebook (qui permet de se connecter à ce qu'on appelle le « API graphique » si je ne suis pas sûr). J'ai adapté le code exemple Facebook pour me permettre de vous connecter à Facebook et qui fonctionne ... mais je ne peux pas obtenir une liste de mes amis.

$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 jeté /mycode/facebook.php sur la ligne 543"

Aucune idée pourquoi c'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é « $ = $ Facebook- amis> api-> friends_get (); » et obtenir une autre erreur, « Erreur fatale: Appel à une fonction de membre friends_get () sur un non-objet dans /mycode/example.php sur la ligne 129" ).

Je peux confirmer que avant ce point dans mon code, les choses sont très 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);
Était-ce utile?

La solution

Je pense que c'est ce que vous voulez:

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

Autres conseils

Ceci est la 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>';
    }
?>

Obtenir les amis comme @nfvs décrit est une bonne façon. Il produit un tableau multidimensionnel avec tous les amis avec des attributs id et le nom (ordonnée par id). Vous pouvez voir les photos que des amis comme ça:

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

Juste un heads-up pour quelqu'un tomber sur cette question en utilisant v2.0 de l'API graphique: Cela ne fonctionnera plus. En v2.0, appelant / moi / amis ne retourne une liste des amis de la personne qui aussi utiliser l'application :

  
      
  • Un accès utilisateur jeton user_friends autorisation est nécessaire pour voir les amis de la personne actuelle.
  •   
  • Ceci ne retourne tous les amis qui ont utilisé (via Facebook Connexion) l'application de la demande.
  •   
  • Si un ami de la personne refuse l'autorisation de user_friends, cet ami ne sera pas affiché dans la liste d'amis pour cette personne.
  •   

Si vous voulez utiliser le point final REST,

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

autre si vous utilisez le graphique api, puis utilisez,

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

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

Utilisez FQL à la place, comme un son SQL mais pour les tables de données de Facebook et couvre facilement les données you'de requête comme à faire. Vous ne devez utiliser tous les / xx / xx xxx / appels, il suffit de savoir les tables et les colonnes que vous intéressé par.

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

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

  

Utilisation CodeIgniter OAuth2 / 0.4.0 étincelles,

     

dans le fichier Auth.php,

$user = $provider->get_user_info($token);

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

et dans le fichier Facebook.php sous fournisseur, ajoutez la fonction suivante,

    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.
friends.get

est fonction pour obtenir une liste des ami

Et oui c'est mieux

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

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

entrée dans votre page.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top