25

Estoy usando the most recent version of the Facebook SDK (lo cual me permite conectarme a algo llamado 'gráfico API' aunque no estoy seguro). He adaptado el código de ejemplo de Facebook para permitirme conectarme a Facebook y eso funciona ... pero no puedo obtener una lista de mis amigos.Obteniendo la lista de amigos de Facebook con la API más reciente

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

Esto produce el mensaje de error: "Error fatal: OAuthException no detectada: (# 803) Algunos de los alias que ha solicitado no existen: friends.get tirado en /mycode/facebook.php en la línea 543"

No hay idea de por qué es eso o lo que eso significa. ¿Puede alguien decirme la sintaxis correcta (para la última API de Facebook) para obtener una lista de amigos? (Intenté "$ friends = $ facebook-> api-> friends_get();" y obtuve un error diferente, "Fatal error: Llamada a una función miembro friends_get() en un no-objeto en /mycode/example.php on línea 129 ".)

Puedo confirmar que ANTES de este punto en mi código, las cosas están bien: estoy conectado a Facebook con una sesión válida y puedo obtener mi información y volcarla en la pantalla solo ... es decir, este código se ejecuta perfectamente antes de la llamada friends.get fallado:

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

Respuesta

59

Creo que esto es lo que quiere:

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

por casualidad ¿sabe cómo obtener la foto de perfil de alguien con una llamada de API? algo así como ... $ friends = $ facebook-> api ('/ idofosmefriend/picture'); ¿Y hay alguna documentación con todas esas llamadas? ¡Gracias! –

+0

@nfvs, ¿sabes cómo puedo acceder a friends_hometown? – alex

+13

Esto ya no funciona con Graph API v2 o incluso las aplicaciones heredadas Graph API v1. Consulte: https://developers.facebook.com/docs/graph-api/reference/v2.0/user/friends "Esto solo devolverá a los amigos que hayan utilizado (a través de Facebook Login) la aplicación que realiza la solicitud". – goodies4uall

13

Ge Buscar amigos como @nfvs describe es una buena manera. Genera una matriz multidimensional con todos los amigos con atributos id y nombre (ordenados por id). Se puede ver a los amigos fotos como esta:

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

trabajado! gracias, solo una línea me arrojó un error ... en el segundo bucle foreach ... lo cambié a lo siguiente, así que funcionó para mí, echo '

  • '; – Stevanicus

    +0

    funciona según su sugerencia y el mismo actualizado en el código. Gracias Stevanicus & Geoffa – Elankeeran

    -3

    header ('Content-type: text/html; charset = UTF-8');

    entrada en su página.

    3

    Si desea utilizar el punto final REST,

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

    otra cosa si está utilizando la API gráfica, a continuación, utilizar,

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

    Uso FQL lugar, es un como SQL, pero para Las tablas de datos de Facebook y cubren fácilmente las consultas de datos que desea realizar. No tendrá que usar todas esas llamadas/xx/xxx/xx, solo conozca las tablas y columnas en las que está interesado.

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

    Grandes ejemplos interactivos en http://developers.facebook.com/docs/reference/fql/

    24

    Esta es la versión en vivo del Código PHP para obtener sus amigos 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 documentación dice que muestra a los amigos que también usan su aplicación. He intentado con el código anterior y obtuve ese resultado . Vea su enlace: (Consulte la sección 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 
    

    Es función para obtener una lista de amigos de

    Y sí, esto es lo mejor

    $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

    Sólo una cabeza para cualquiera que tropezarse con esta pregunta utilizando versión 2.0 de la API de gráficos: Esta voluntad ya no funciona En v2.0, llamando/Me/amigos sólo devuelve una lista de amigos de la persona que También utilizar la aplicación:

    • 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

    ¿Hay alguna forma de obtener una lista de todos los amigos con la API 2.0 Graph? – Eric

    3

    en la reciente versión del SDK de Facebook, Facebook ha desactivado la función que le permiten acceder a algunos una lista de amigos por razones de seguridad ... revise la documentación para obtener más información ...

    Cuestiones relacionadas