[餅] 餅空 blog / Nucleus支店

前の記事: Nucleusに「被はてなブックマーク数」を表示する
次の記事: qmail-scanner がメジャーバージョンアップして2.00に(BlogPet)

2006-04-30

Services_Hatenaの被ブックマーク件数取得を複数URL対応に

 「Nucleusに『被はてなブックマーク数』を表示する」で Services_Hatenaの「Bookmarknum」を使ってみたところ、複数URLに対応してないような気がしたので、複数URLの結果を取得できるようにしてみました。

とはいえ、「とりあえず取得できればいいや」という自己満足レベルの覚え書きです。

 新しく[Bookmarknums]というのを追加する事で複数URLに対応させる事にしました。
// Hatena.phpの95行目辺りに以下を追加。
case 'Bookmarknums': // class for bookmarknums API

// Hatena/Bookmarknum.php を Hatena/Bookmarknums.php という名前でコピー
Hatena/Bookmarknums.php を以下のように変更

@@ -35,7 +35,7 @@
* @license http://www.php.net/license/3_0.txt PHP License 3.0
* @version Release: 0.1.0
*/
-class Services_Hatena_Bookmarknum extends Services_Hatena
+class Services_Hatena_Bookmarknums extends Services_Hatena
{
/**
* execute
@@ -49,16 +49,17 @@
{
require_once 'XML/RPC.php';

- $params = new XML_RPC_Value($url, 'string');
+ foreach($url as $val) {
+ $params[] = new XML_RPC_Value($val, 'string');
+ }

- $msg = new XML_RPC_Message('bookmark.getCount', array($params));
+ $msg = new XML_RPC_Message('bookmark.getCount', $params);
$client = new XML_RPC_Client('/xmlrpc', $this->bookmark_url, 80);
$response = $client->send($msg);

if (!$response->faultCode()) {
$r = $response->value();
- $r = $r->scalarval();
- return $r[$url]->me['int'];
+ return XML_RPC_Decode($r);
} else {
return PEAR::raiseError('missing the result.');
}
 以上で変更は終了。取得したいURLを配列に入れて渡すと、結果が配列に入って返ってきます。
サンプル

$url[] = "http://www.hatena.ne.jp/";
$url[] = "http://www.google.co.jp/";
$url[] = "http://www.yahoo.co.jp/";
$url[] = "http://www.livedoor.com/";

require_once 'Services/Hatena.php';
$hatena_n = Services_Hatena::factory('Bookmarknums');
$nums = $hatena_n->execute($url);
var_dump($nums);
foreach($nums as $url => $num) {
printf("%s -> %d\n", $url, $num);
}

↓結果↓

array(4) {
["http://www.hatena.ne.jp/"]=>
string(3) "278"
["http://www.yahoo.co.jp/"]=>
string(3) "744"
["http://www.google.co.jp/"]=>
string(3) "429"
["http://www.livedoor.com/"]=>
string(3) "162"
}
http://www.hatena.ne.jp/ -> 278
http://www.yahoo.co.jp/ -> 744
http://www.google.co.jp/ -> 429
http://www.livedoor.com/ -> 162
 となるはずです。

おしまい。
posted at 10:01:01 on 2006-04-30 by mochy - Category: インターネット

Amazon

Comments

No comments yet

Add Comments



TrackBack

Trackback
There are currently no trackbacks for this item.
Use this TrackBack url to ping this item (right-click, copy link target). If your blog does not support Trackbacks you can manually add your trackback by using this form.

前後の記事

前の記事: Nucleusに「被はてなブックマーク数」を表示する
次の記事: qmail-scanner がメジャーバージョンアップして2.00に(BlogPet)

MyMiniCity

MyMiniCity

死語ステッカー

死語ブログパーツ

著作権保護期間延長反対

著作権保護期間の延長反対

PR

NEC「得選街」PCサーバ 半額以下キャンペーン実施中

ザッピング

あわせて読みたい

あわせて読みたい

TEAM -6%

今年もクールビズ

Blog Scouter