Как получить количество Digg для URL с помощью Services_Digg2? - PullRequest
1 голос
/ 06 января 2010

Неясно, способен ли этот API выполнять поиск по URL, поиск по G без особого успеха.

1 Ответ

2 голосов
/ 06 января 2010

Services_Digg2 - это просто клиентская библиотека на PHP, которая перенаправляет все вызовы API, и API поддерживает поиск по URL. То, что вам нужно передать, это хэш md5 url вместо фактического url. PHP имеет функцию md5 , которую вы можете использовать для получения хеша md5 URL.

Тогда вызов API будет для story.getAll, и вы передадите ранее вычисленный хэш md5 в качестве параметра link_hash.

http://services.digg.com/1.0/endpoint?method=story.getAll&link_hash=a23658a0828e2fb388b7c83f61e235e6

Этот хеш предназначен для URL http://www.nytimes.com/2010/01/05/health/05docs.html, а ответ от API:

<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>

Элемент story в этом ответе имеет атрибут diggs, который вам нужен.

Чтобы получить это через библиотеку PHP, код должен выглядеть примерно так:

$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'];
}
...