كيفية الحصول على عدد Digg من عنوان URL باستخدام الخدمات_Digg2؟
سؤال
ليس من الواضح ما إذا كان هذا API قادرا على البحث عن طريق عنوان URL، حيث بحثت من خلال G، دون نجاح كبير.
المحلول
Services_Digg2 هي مجرد مكتبة عميل في PHP التي توجيه جميع المكالمات إلى API و API تدعم البحث عن طريق عناوين URL. ما تحتاج إلى تمريره هو MD5 Hash لعنوان URL بدلا من عنوان URL الفعلي. PHP لديه أ MD5. الوظيفة التي يمكنك استخدامها للحصول على التجزئة MD5 لعنوان URL.
دعوة API بعد ذلك سيكون ل story.getAll
وتمرير Hash 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/5Docs.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>
عنصر القصة في هذا الاستجابة له سمة تسمى 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'];
}
لا تنتمي إلى StackOverflow