Automatizar actualización diaria de contadores de redes sociales

  • Autor Autor Nehemoth
  • Fecha de inicio Fecha de inicio
N

Nehemoth

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Me gustaría implementar un contador de likes de los botones sociales de facebook, twitter y g+ pero es ingente la cantidad de tiempo que éstos tardan en recopilar los datos... alguno sabe como hacer un cron que inserte en una tabla algo así como

[table="width: 500"]
[tr]
[td]ID[/td] [td]URL[/td][td]FBCOUNTS[/td][td]TWITCOUNTS[/td][td]GPLUSCOUNTS[/td]
[/tr]
[/table]

Y que se actualice a diario?

Saludos!!!
 
En teoría, si tienes los contadores sociales extrayéndose por PHP y tienes un buen pluggin de CACHÉ tu web no hará consulta a las APIs de Facebook, Twitter ni Google cada vez que se imprima la pantalla.

Te lo digo porque sería poco práctico, en especial para las publicaciones nuevas, que estas sólo se actualicen una vez al día. Y porque hacer lo que dices implica más procesamiento de lo que parece.


De todas formas, para hacer lo que quieres hacer solo necesitas:

  • Un feed o su equivalente (puedes usar el site map para extraer las urls que ya no salgan en el feed), donde puedas extraer todas las urls (Puedes hacerlo desde la base de datos de wordpress, pero es algo complicado y si no tienes mucha experiencia es mejor no tocarla).
  • Luego necesitas un script que se ejecute varias veces al día con un Foreach a tu Feed, que por cada url, compruebe si esta ya aparece en la base de datos, si no aparece, que la agregue.
  • Luego el script que se ejecutará diario haciendo un foreach a los links, y por cada link en la base de datos compruebe con las APIs de las redes sociales, cuanta actividad han tenido, las guarde en variables y luego haga un UPDATE en la tabla WHERE url=$url actualizando los campos por los valores de las variables.

Si tienes dudas con la creaci'on de los Cron Jobs te dejo un tutorial
¿Cómo configurar un Cron Job básico en cPanel? – nuthost.info | Centro de Información
 
Pero, corrígeme si me equivoco, yo todos los plugins que he visto de iconos sociales con contadores preguntan a las respectivas apis por cada uno de los post por la misma razón que me das de que una vez al día es poco... si hasta el like-box-for-pages de facebook se recarga cada vez que se actualiza la página :s

(5 post por página + widget de texto de síguenos)*3 plataformas...

Yo he optado por el momento a insertar ésto en mi tema:
Insertar CODE, HTML o PHP:
<span id="facebook"><a target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=<?php the_permalink(); ?>">
<img src="" alt="facebook-ico">
</a></span>
<span id="twitter"><a target="_blank" href="https://twitter.com/intent/tweet?text=<?php echo get_the_title(); ?>&url=<?php the_permalink(); ?>">
<img src="" alt="social-ico-twt">
</a></span>
<span id="google-plus"><a target="_blank" href="https://plus.google.com/share?url=<?php the_permalink(); ?>">
<img src="" alt="google-ico">
</a></span>

Y esto para el widget follow us
siguenos.webp

Pero realmente me gustaría mostrar los contadores sin que suponga una gran pérdida de velocidad de carga

Saludos!!!
 
Sí algo así, crear los botones sin java y aparte meterle el contador desde la base de datos

Saludos!!!
 
Yo lo hice así

PHP:
<a href='https://www.facebook.com/sharer/sharer.php?u=<?php the_permalink();?>' target="_blank"> <button class='social fb'> Compartir 
<?php 
$var = json_decode(file_get_contents('http://graph.facebook.com/?id='.get_permalink())); echo '<span>' . $var->shares . '</span>';?>
</button></a>
                   <a href='https://twitter.com/home?status=<?php urlencode(the_title());?> <?php the_permalink();?>' target="_blank"> <button class='social tw'> Twitear

<?php 
$var = json_decode(file_get_contents('http://urls.api.twitter.com/1/urls/count.json?url='.get_permalink()));
echo '<span>' . $var->count . '</span>';

?>
</button></a>
                   <a href='https://plus.google.com/share?url=<?php the_permalink();?>' target="_blank"> <button class='social gp'> Compartir

</button></a>

Luego le dí forma con CSS a los numeros

HTML:
button span {
background: #cc0001;
border-radius: 3px;
color: #fff;
z-index: 999999;
font-weight: 600;
padding: 2px 6px;
box-shadow: 0 2px 3px rgba(0,0,0,.2), inset 0 2px 5px rgba(225,225,225,.3);
font-size: 13px;
margin-left: 5px;
position: relative;
display: inline-block;
top: -20px;
}

Todavía no he conseguido la url de la api para G+
 
Gracias! eres un crack! funciona muy bien, con ese código se pueden personalizar al gusto los botones

Respecto a rendimiento ¿cuáles crees que van mejor entonces? ¿los por defecto de cada api, ShareThis o así en "custom"?

Saludos!!!
 
Atrás
Arriba