Domanda

la versione più recente del Facebook SDK (che permette di connettersi a qualcosa chiamato il 'grafico API' anche se non sono sicuro). Ho adattato codice di esempio di Facebook per farmi connettersi a Facebook e che le opere ... ma non riesco a ottenere una lista dei miei amici.

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

Questo produce il messaggio di errore: "Fatal error: OAuthException Uncaught: (# 803) Alcuni degli alias richiesti non esistono: friends.get gettato in /mycode/facebook.php on line 543"

Nessun indizio perché questo è o che cosa ciò significhi. Qualcuno può dirmi la sintassi corretta (per le ultime API di Facebook) per ottenere una lista di amici? (Ho provato "$ amici = $ facebook-> API-> friends_get ();" ed ottengo un errore diverso, "Fatal error: chiamata a una funzione membro friends_get () su un non-oggetto in /mycode/example.php su la linea 129" .)

Posso confermare che prima di questo punto nel mio codice, le cose vanno bene: io sono collegato a Facebook con una sessione valida e posso ottenere il mio informazioni e scaricare allo schermo solo ... cioè questo codice viene eseguito perfettamente prima la chiamata non riuscita friends.get:

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

Soluzione

Credo che questo sia ciò che si vuole:

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

Altri suggerimenti

Questa è la versione live di codice PHP per ottenere i tuoi amici da 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>';
    }
?>

Come gli amici come @nfvs descrive è un buon modo. Emette un array multi-dimensionale con tutti gli amici con attributi id e name (ordinare per id). Potete vedere le foto amici come questo:

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

Solo un testa a testa per chiunque imbattersi in questa domanda utilizzando v2.0 del Graph API: Questo non funziona più. In v2.0, chiamando / mi / amici restituisce solo un elenco di amici della persona che usare anche l'applicazione :

  
      
  • Un accesso degli utenti token con il permesso user_friends è necessario per visualizzare gli amici della persona corrente.
  •   
  • Questo restituirà solo degli amici che hanno usato (via Facebook Login) l'applicazione che effettua la richiesta.
  •   
  • Se un amico della persona che declina il permesso user_friends, che l'amico non sarà visualizzato nella lista di amici per questa persona.
  •   

Se si desidera utilizzare il punto finale REST,

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

altra cosa se si utilizza l'API grafico, quindi utilizzare,

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

nella versione recente di facebook sdk, Facebook ha disabilitato la funzione che consentono di accedere qualche lista uno amici per motivi di sicurezza ... controlla la documentazione per saperne di più ...

Usa FQL invece, è un come SQL, ma per le tabelle di dati di Facebook e facilmente si estende su dati di query you'de piace fare. Non dovrete usare tutte quelle / xx / xx / xxx chiamate, è sufficiente sapere le tabelle e le colonne che si potrebbero interessare anche i.

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

Grandi esempi interattivi a http://developers.facebook.com/docs/reference/fql /

  

Utilizzando CodeIgniter OAuth2 / 0.4.0 scintille,

     

nel file di auth.php,

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

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

e nel file di Facebook.php sotto Provider, aggiungere la seguente funzione,

    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

E 'funzione per ottenere un elenco di amico

E sì questo è migliore

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

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

ingresso nella tua pagina.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top