¿Cómo obtener los likes , shares y comments de una página?

Comparte este Rollo

Seguramente más de una persona habrá pensado en realizar un widget en PHP personalizado para mostrar los likes, shares y comments que tiene su página web y existen un método relativamente fácil haciendo una consulta a una url proporcionada por facebook cuyo snipet lo encuentras rápidamente en stackoverflow… hasta allí todo va perfecto. Peroooo por alguna razón no me funcionaba y despues de mucho batallar y leer blog y mucho leer y testear, me di cuenta que mi hosting no tiene habilitada la función allow_url_fopen algo muy común en servidores compartidos y que los proveedores del servicio por “políticas” no habilitan.

Entonces la opción era usar la función CURL  con ella realice un pequeño snipet que resuelve el problema reciclando parte de la solución que vi en stackoverflow; así que se los comparto.

Criticas, comentarios, trolleadas y mentadas las pueden enviar a mi twitter: @obed_castillo

 <?php  
 function FbStats($current_url){  
      //PARAMETROS DE CONSULTA A FACEBOOK  
      $params = 'select comment_count, share_count, like_count from link_stat where url = "'.$current_url.'"';  
      //PREPARAR EL STRING PARA ENVIAR POR URL  
       $component = urlencode( $params );  
       //CONCATENAMOS LA URL PARA HACER EL REQUEST + LOS PARAMETROS A CONSULTAR  
       $url = 'http://graph.facebook.com/fql?q='.$component;  
       // UNICIAMOS CURL  
       $ch = curl_init();  
      // CONFIGURAMOS PARAMETROS DE CURL  
      curl_setopt($ch, CURLOPT_URL, $url);  
      // ESTE PÀRAMETRO EVITA QUE SE IMPRIMA EN PANTALLA AUTOMATICAMENTE  
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);  
      //GUARDAMOS LA RESPUESTA DE FACEBOOK OBTENIDA POR CURL EN UNA VARIABLE  
      $response = curl_exec($ch);  
      // CERRAMOS LA SESION DE CURL  
      curl_close($ch);  
      //DECODIFICAMOS EL JSON QUE NOS RESPONDIO FACEBOOK  
      $json = json_decode($response);  
      //CREAMOS UN ARREGLO CON EL DATOS OBTENIDOS DE JSON FACEBOOK  
      $FbStats = $json->data['0'];  
      // CREAMOS UNA VARIABLE PARA CADA VALOR DEVUELTO POR JSON FACEBOOK  
      $likes = $FbStats->like_count;  
      $shares = $FbStats->share_count;  
      $comments = $FbStats->comment_count;  
      // RETORNAMOS UN ARREGLO IDENTADO CON CADA VARIABLE   
      return array('likes'=> $likes,'shares'=> $shares, 'comments'=> $comments);  
 }  
 /***** MODO DE USO  *****/  
 //CREAMOS VARIABLE CON LA URL ACTUAL O EN SU CASO PUEDE PONER UNA URL ESTATICA  
 $current_url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];  
 //EJECUTAMOS LA FUNCION Y PASAMOS EL PARAMETRO   
 $response = FbStats($current_url);  
 // IMPRIME EL RESULTADO  
 echo "Likes: ".$response['likes']."<br>";  
 echo "Shares: ".$response['shares']."<br>";  
 echo "Comments: ".$response['comments']."<br>";  
 ?>  

Comentarios

interacciones

Publicado el 21 febrero, 2015 en Programación

Comparte este Rollo

Sobre el Autor

Soy un apasionado de la tecnología por las posibilidades que esta ofrece para mejorar la vida de las personas y los beneficios económicos que genera. Creo que el donar conocimiento, experiencia e información relevante es una forma de altruismo, mucho más valiosa para la sociedad que dar un billete o una moneda a alguna caridad. (que también de vez en cuando lo hago).