Como llegar recuento Digg de una URL utilizando Services_Digg2?
Pregunta
No está claro si esta API es aún capaz de buscar por URL, buscó a la G, sin mucho éxito.
Solución
Services_Digg2 es sólo una biblioteca de cliente en PHP que reenvía todas las llamadas a la API y el API es compatible con la búsqueda de direcciones URL. Lo que necesita para aprobar es el hash MD5 de la URL en lugar de la URL real. PHP tiene un MD5 función que se puede utilizar para obtener el hash MD5 de un URL.
La llamada a la API entonces sería para story.getAll
y pasar el hash MD5 calculado previamente como un parámetro link_hash
.
http://services.digg.com/1.0/endpoint?method=story.getAll&link_hash=a23658a0828e2fb388b7c83f61e235e6
Este hash de arriba es para la URL http: // www. nytimes.com/2010/01/05/health/05docs.html y la respuesta de la API es:
<stories timestamp="1262740374" total="1" offset="0" count="1">
<story link="http://www.nytimes.com/2010/01/05/health/05docs.html" submit_date="1262729293" diggs="70" id="18288654" comments="6" href="http://digg.com/health/For_F_D_R_Sleuths_New_Focus_on_an_Odd_Spot" promote_date="1262739603" status="popular" media="news">
<description>Look closely at Roosevelt’s portraits over his 12-year presidency. In his first two terms, there is a dark spot over his left eyebrow. It seems to grow and then mysteriously vanishes sometime around 1940, leaving a small scar. </description>
<title>For F.D.R. Sleuths, New Focus on an Odd Spot</title>
<user name="leaprinces" registered="1227624484" profileviews="23186" fullname="Princess Leia" icon="http://digg.com/users/leaprinces/l.png" />
<topic name="Health" short_name="health" />
<container name="Lifestyle" short_name="lifestyle" />
<thumbnail originalwidth="190" originalheight="126" contentType="image/jpeg" src="http://digg.com/health/For_F_D_R_Sleuths_New_Focus_on_an_Odd_Spot/t.jpg" width="80" height="80" />
<shorturl short_url="http://digg.com/d31EjiI" view_count="192" />
</story>
</stories>
El elemento de la historia en esta respuesta tiene un atributo llamado diggs
que es lo que necesita.
Para conseguir esto a través de la librería PHP, el código debe ser algo como:
$url = "...";
$api = new Services_Digg2;
$stories = $api->story->getAll(array('link_hash' => md5($url)))->stories;
foreach($stories as $story) {
// I am not sure how to access the diggs attribute
// Maybe this works. If not, just
// var_dump the $story object and
// see how to access the digg count information.
echo $story['diggs'];
}