Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Error en app Facebook listado amigos

Estas en el tema de Error en app Facebook listado amigos en el foro de PHP en Foros del Web. Hola a todos: Tengo una APP creada en Facebook para lograr diferentes funcionalidades en mi web. La integración de facebook con mi web la he ...
  #1 (permalink)  
Antiguo 23/01/2015, 11:45
Avatar de victor5atodogas  
Fecha de Ingreso: junio-2010
Mensajes: 447
Antigüedad: 13 años, 10 meses
Puntos: 2
Error en app Facebook listado amigos

Hola a todos:

Tengo una APP creada en Facebook para lograr diferentes funcionalidades en mi web.
La integración de facebook con mi web la he logrado a través de "HybridAuth" (http://hybridauth.sourceforge.net) por lo que la mayoría ya estaba hecha.

Después de crear la APP de Facebook he logrado que la gente puede hacer el registro y el logon gracias a Facebook pero quiero implementar una función en mi web que me trae de cabeza: "los amigos".

Por un lado, ya trae integrada la función de obtener los amigos (los amigos que usan mi web y están registados gracias a facebook) con la funcion:

Código PHP:
Ver original
  1. function getUserContacts()
  2.     {
  3.         $apiCall = '?fields=link,name';
  4.         $returnedContacts = array();
  5.         $pagedList = false;
  6.  
  7.         do {
  8.             try{
  9.                 $response = $this->api->api('/me/friends' . $apiCall);
  10.  
  11.             }
  12.             catch( FacebookApiException $e ){
  13.                 throw new Exception( 'User contacts request failed! {$this->providerId} returned an error: $e' );
  14.             }
  15.  
  16.             // Prepare the next call if paging links have been returned
  17.             if (array_key_exists('paging', $response) && array_key_exists('next', $response['paging'])) {
  18.                 $pagedList = true;
  19.                     $next_page = explode('friends', $response['paging']['next']);
  20.                     $apiCall = $next_page[1];
  21.             }
  22.             else{
  23.                 $pagedList = false;
  24.             }
  25.  
  26.             // Add the new page contacts
  27.             $returnedContacts = array_merge($returnedContacts, $response['data']);
  28.         }                
  29.        
  30.         while ($pagedList == true);
  31.  
  32.         $contacts = ARRAY();
  33.  
  34.         foreach( $returnedContacts as $item ){
  35.             $uc = new Hybrid_User_Contact();
  36.  
  37.             $uc->identifier  = (array_key_exists("id",$item))?$item["id"]:"";
  38.             $uc->displayName = (array_key_exists("name",$item))?$item["name"]:"";
  39.             $uc->profileURL  = (array_key_exists("link",$item))?$item["link"]:"https://www.facebook.com/profile.php?id=" . $uc->identifier;
  40.             $uc->photoURL    = "https://graph.facebook.com/" . $uc->identifier . "/picture?width=150&height=150";
  41.  
  42.             $contacts[] = $uc;
  43.         }
  44.  
  45.         return $contacts;
  46.     }

Esto funciona teóricamente, puesto que me devuelve siempre ningún amigo aunque no sea así.

Por otro lado me gustaría obtener la lista de amigos de cada usuario, para ello he solicitado el permido "read_friendlists" en la App de Facebook con el objetivo de que puedas buscar todos tus amigos de facebook que NO estan en mi web e invitarle; aunque he definido los pasos de como debería funcionar Facebook no me aprueba esto. Para lo grar esto he usado esta otra función:

Código PHP:
Ver original
  1. function getUserFriends()
  2.     {
  3.         //$apiCall = '?fields=link,name';
  4.         $apiCall = NULL;
  5.         $returnedContacts = array();
  6.         $pagedList = false;
  7.  
  8.         do {
  9.             try{
  10.                 $response = $this->api->api('/me/friendlist' . $apiCall);                
  11.                 return $response;
  12.             }
  13.             catch( FacebookApiException $e )
  14.             {
  15.                 die("'User contacts request failed! {$this->providerId} returned an error: $e'");
  16.                 throw new Exception( 'User contacts request failed! {$this->providerId} returned an error: $e' );
  17.             }
  18.  
  19.             // Prepare the next call if paging links have been returned
  20.             if (array_key_exists('paging', $response) && array_key_exists('next', $response['paging'])) {
  21.                 $pagedList = true;
  22.                     $next_page = explode('friends', $response['paging']['next']);
  23.                     $apiCall = $next_page[1];
  24.             }
  25.             else{
  26.                 $pagedList = false;
  27.             }
  28.  
  29.             // Add the new page contacts
  30.             $returnedContacts = array_merge($returnedContacts, $response['data']);
  31.         }                
  32.        
  33.         while ($pagedList == true);
  34.  
  35.         $contacts = ARRAY();
  36.  
  37.         foreach( $returnedContacts as $item ){
  38.             $uc = new Hybrid_User_Contact();
  39.  
  40.             $uc->identifier  = (array_key_exists("id",$item))?$item["id"]:"";
  41.             $uc->displayName = (array_key_exists("name",$item))?$item["name"]:"";
  42.             $uc->profileURL  = (array_key_exists("link",$item))?$item["link"]:"https://www.facebook.com/profile.php?id=" . $uc->identifier;
  43.             $uc->photoURL    = "https://graph.facebook.com/" . $uc->identifier . "/picture?width=150&height=150";
  44.  
  45.             $contacts[] = $uc;
  46.         }
  47.  
  48.         return $contacts;
  49.     }

Una vez explicado todo esto mis dudas son:

¿Estoy haciendo lo correcto respecto a obtener los amigos que tienes en facebook y estan en mi web? Si lo estoy haciendo mal necesito que me digáis como hacerlo.

¿Es posible obtener todos los amigos de facebook para invitarles a usar mi web? En ese caso si lo estoy haciendo de forma incorrecta también necesito que me digáis como hacerlo.

Quizás una buena solución a todo esto sería que alguien explicara muy bien todo esto de una forma sencilla en español en algún tutorial.

Muchas gracias.
  #2 (permalink)  
Antiguo 23/01/2015, 16:45
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Error en app Facebook listado amigos

Cita:
¿Estoy haciendo lo correcto respecto a obtener los amigos que tienes en facebook y estan en mi web? Si lo estoy haciendo mal necesito que me digáis como hacerlo.

¿Es posible obtener todos los amigos de facebook para invitarles a usar mi web? En ese caso si lo estoy haciendo de forma incorrecta también necesito que me digáis como hacerlo.
Creo que tus dudas las puedes despejar si primero lees como funciona el api de facebook: https://developers.facebook.com/
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 24/01/2015, 03:40
Avatar de victor5atodogas  
Fecha de Ingreso: junio-2010
Mensajes: 447
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: Error en app Facebook listado amigos

Gracias pero lo que busco es una respuesta concreta a los problemas que tengo; en teoría ahi se explica todo pero eso ya lo he leido así como la explicación del HybridAuth y toda la documentación respecto a la APP de Facebook.

Etiquetas: app, facebook, listado, registro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:40.