25

Sto usando the most recent version of the Facebook SDK (che consente di connettersi a qualcosa chiamato 'grafico API' anche se non sono sicuro). Ho adattato il codice di esempio di Facebook per farmi connettere a Facebook e funziona ... ma non riesco a ottenere una lista dei miei amici.Ottenere l'elenco di amici di Facebook con l'ultima API

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

Non capisco perché sia ​​o cosa significhi. Qualcuno può dirmi la sintassi corretta (per l'ultima API di Facebook) per ottenere una lista di amici? (Ho provato "$ friends = $ facebook-> api-> friends_get();" e ho ricevuto un errore diverso, "Errore fatale: chiama ad una funzione membro friends_get() su un oggetto non in /mycode/example.php su linea 129 ".)

Posso confermare che PRIMA questo punto nel mio codice, le cose vanno bene: sono connesso a Facebook con una sessione valida e posso ottenere le mie informazioni e scaricarlo sullo schermo solo ... vale a dire il codice viene eseguito perfettamente prima della chiamata friends.get fallito:

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

risposta

59

credo che questo sia ciò che si vuole:

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

per caso sai come ottenere l'immagine del profilo di qualcuno con una chiamata API? qualcosa come ... $ friends = $ facebook-> api ('/ idofosmefriend/picture'); E c'è qualche documentazione con tutte quelle chiamate?, Grazie! –

+0

@nfvs, sai come posso accedere a friends_hometown? – alex

+13

Non funziona più con Graph API v2 o anche con le applicazioni v1 Graph API legacy. Vedi: https://developers.facebook.com/docs/graph-api/reference/v2.0/user/friends "Ciò restituirà solo gli amici che hanno utilizzato (tramite Facebook Login) l'app che ha effettuato la richiesta." – goodies4uall

13

Ge interpretare gli amici come @nfvs descrive è un buon modo. Emette un array multidimensionale con tutti gli amici con gli attributi id e name (ordinati 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>'; 
} 
+0

ha funzionato! grazie, solo una riga ha generato un errore per me .... nel secondo ciclo foreach ... l'ho modificato come segue, quindi ha funzionato per me, echo '

  • '; – Stevanicus

  • +0

    funziona come da tuo suggerimento e lo stesso aggiornato nel codice. Grazie Stevanicus & Geoffa – Elankeeran

    -3

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

    input nella tua pagina.

    3

    Se si desidera utilizzare il punto finale REST,

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

    altrimenti se si utilizza l'API grafico, quindi utilizzare,

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

    Usa FQL invece, è un come SQL, ma per Le tabelle dei dati di Facebook e copre facilmente le query sui dati che desideri creare. Non dovrete usare tutte quelle chiamate/xx/xxx/xx, conoscete solo le tabelle e le colonne in cui siete intereseted.

    $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/

    24

    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>'; 
        } 
    ?> 
    
    +0

    La documentazione dice che, mostra gli amici che usano anche la tua app. Ho provato sopra il codice e ottenuto quel risultato Vedi il loro link: (Controlla la sezione 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 
    

    è la funzione per ottenere un elenco di amico

    E sì questo è meglio

    $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

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

    • 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

    C'è un modo per ottenere un elenco di tutti gli amici con l'API Graph 2.0? – Eric

    3

    nella versione recente di facebook sdk, Facebook ha disabilitato la funzione che permette di accedere ad alcune un elenco di amici per motivi di sicurezza ... controlla la documentazione per saperne di più ...

    Problemi correlati