Pregunta

Estoy usando la versión más reciente del SDK de Facebook (que permite conectar a algo que se llama el 'API gráfica', aunque no estoy seguro). Me he adaptado código de ejemplo de Facebook para que me conecto a Facebook y que las obras ... pero no puedo obtener una lista de mis amigos.

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

Ni idea de por qué es así, o lo que eso significa. ¿Puede alguien decirme la sintaxis correcta (para la última API de Facebook) para obtener una lista de amigos? (Probé "$ amigos = $ facebook-> API-> friends_get ();" y sale un error diferente, "Fatal error: Llamada a una función miembro friends_get () en un no-objeto en el /mycode/example.php 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 a la pantalla sólo ... es decir, este código se ejecuta perfectamente antes la llamada fallida friends.get:

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

Solución

Creo que esto es lo que quiere:

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

Otros consejos

Esta es la versión en vivo de 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>';
    }
?>

Obtención de los amigos como @nfvs describe es una manera buena. Se da salida a una matriz multidimensional con todos los amigos con los atributos ID y el 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>';
}

Sólo una cabeza para cualquier persona tropezarse con esta pregunta utilizando versión 2.0 de la API de gráficos: Esto no funcionará más. En v2.0, llamando / Me / amigos sólo devuelve una lista de amigos de la persona que también utilizar la aplicación

  
      
  • Se requiere un acceso token de usuario con permiso para ver user_friends amigos de la persona actual.
  •   
  • Esto sólo devolverá amigos que han utilizado (a través de Facebook Entrar) la aplicación que hace la solicitud.
  •   
  • Si un amigo de la persona que se niega el permiso user_friends, ese amigo no se mostrará en la lista de amigos de esta persona.
  •   

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

en la versión reciente de Facebook SDK, Facebook ha desactivado la función que le permiten acceder a alguna lista de amigos uno por razones de seguridad ... ver la documentación para aprender más ...

Uso FQL lugar, es un como SQL, pero las tablas de datos de Facebook y fácilmente cubre datos de consulta YOU'DE gusta hacer. Usted no tendrá que utilizar todas esas llamadas / xxx / xx / xx, sólo sé las tablas y columnas que también se interesaron en.

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

  

Uso de CodeIgniter OAuth2 / 0.4.0 chispas,

     

en el archivo auth.php,

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

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

y en el archivo Facebook.php en Proveedor, agregue la siguiente función,

    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

Es función para obtener una lista de de un amigo

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

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

Una entrada en su página.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top