No es difícil ver en blogs los retweets que hace la gente de tus posts y que estos se muestren en los comentarios. ¿Por qué no hacer lo mismo con Google Reader?. En Google Reader, es posible ver a quienes les gustan tus posts (si tienes tu propio blog en el reader), lo cual te puede ayudar a saber si tus posts interesan o no, o encontrar usuarios con gustos parecidos y así seguir sus recomendaciones y poder leer posts interesantes.
Google suele dar complicaciones a la hora de hacer uso de sus webs, pero si usamos su API de ClientLogin lo podemos hacer de forma sencilla.
Primero tendremos que loguearnos en Google, para lo cual tendremos que indicar nuestro usuario y contraseña y los datos posts que tendremos que pasarle:
$usuario = 'micorreo@gmail.com';
$password = 'mipassword';
$postdata = 'service=reader&Email='.urlencode($usuario).'&Passwd='.urlencode($password).'&continue=http://www.google.com/reader/&service=reader';
Luego nos logueamos y obtenemos el valor de Auth para usarlo en el resto de peticiones usandolo en el header de la petición HTTP:
$ch = crl_init($url);
crl_setopt( $ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)');
crl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
crl_setopt ($ch, CURLOPT_COOKIEJAR, './cookie');
crl_setopt ($ch, CURLOPT_COOKIEFILE, './cookie');
crl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
crl_setopt ($ch, CURLOPT_POST, 1);
crl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false );
crl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false );
$url = 'https://www.google.com/accounts/ClientLogin';
crl_setopt($ch, CURLOPT_URL, $url);
crl_setopt($ch, CURLOPT_FOLLOWLOCATION, 4);
$res = crl_exec($ch);
preg_match('/Auth=(.*)/', $res, $m);
$auth = $m[1];
Después realizo la búsqueda, para lo cual busco el título del post y le añado el nombre del blog (chapu a la espera de encontrar algo mejor), por ejemplo “Stanford%20Javascript%20Crypto%20Library%20sentidoweb”
$url = 'https://www.google.com/reader/api/0/search/items/ids?q=Stanford%20Javascript%20Crypto%20Library%20sentidoweb&output=json';
crl_setopt($ch,CURLOPT_HTTPHEADER,array('Authorization: GoogleLogin auth='.$auth));
crl_setopt($ch, CURLOPT_POST, 0);
crl_setopt($ch, CURLOPT_URL, $url);
$res = crl_exec($ch);
$datos = json_decode($res);
De aquí obtengo el ID del post dentro de Google Reader, y con ese ID obtengo los likers y muestro sus fotos:
if (isset($datos->results[0]->id)) {
$url = 'https://www.google.com/reader/api/0/stream/items/contents?client=scroll';
crl_setopt($ch, CURLOPT_POST, 1);
crl_setopt ($ch, CURLOPT_POSTFIELDS, 'i='.$datos->results[0]->id);
crl_setopt($ch, CURLOPT_URL, $url);
$res = crl_exec($ch);
$datos = json_decode($res);
if (isset($datos->items[0]->id)) {
$id = $datos->items[0]->id;
$id = end(explode('/', $id));
$url = 'https://www.google.com/reader/api/0/item/likers?i=tag%3Agoogle.com%2C2005%3Areader%2Fitem%2F'.$id.'&output=json&client=scroll';
crl_setopt($ch, CURLOPT_POST, 0);
crl_setopt($ch, CURLOPT_URL, $url);
$res = crl_exec($ch);
$data = json_decode($res);
if (isset($data->friends)) {
foreach($data->friends as $friend) {
if (isset($friend->photoUrl)) {
echo '';
}
}
}
}
}
De los likers se pueden obtener más datos, y si se hace un var_dump($data->friends) se podrá ver cómo acceder a ellos.
Está claro que un plugin para WordPress estaría bien, pero es algo más complejo si se quiere hacer bien, porque se debería obtener los ids segun URLs, entre otras cosas.
Esto hubiera sido muy útil en la revolucion francesa
(?)
Antes de nada, felicidades por el blog.
Personalmente no recomiendo el uso de comandos desde lenguajes que tienen funciones de sistema y menos si es un ps (y ademas -e:)… estos solo son para los de sistemas! :DD
Si solo va a funcionar en un unix se puede utilizar un kill -0, …perdón: posix_kill
Lo q hay q leer!
Cierto, yo tampoco recomiendo usar funciones de sistema, pero en algunos casos es necesario. Aunque este script sólo será necesario para casos excepcionales.
Sobre lo de sistemas… no creo que sea exclusivo de ellos, y recomiendo a cualquiera que haga aplicaciones web a que aprenda de sistemas, porque si tienes algún problema necesitarás saber de ello.
No, perdón, lo que digo en mi opinión es que es mejor utilizar las funciones de sistema antes de ejecutar comandos del sistema.
Y estoy contigo que por supuesto que es necesario disponer de conocimientos del s.o, sobretodo si utilizas lenguajes linkados en un sistema en particular.
Salu2
¡Ah!, te habÃa entendido mal, sÃ, tienes toda la razón.
Saludos