日記
はてなブックマーク件数取得APIのPHPサンプル (15:18)Edit

<?php
/**
* $Id: HatenaExistsApi.php 107 2005-12-13 06:16:23Z ishinao $
*/
require_once 'PEAR.php';
require_once 'XML/RPC.php'; // PEAR XML_RPC
/**
*
*/
class HatenaExistsApi
{
var $_hatenaExistsApiUrl = 'http://b.hatena.ne.jp/xmlrpc';
var $_hatenaExistsApiMethodName = 'bookmark.getCount';
function call($urls)
{
$parameter = array();
foreach ((array)$urls as $url) {
$parameter[] =& new XML_RPC_Value($url, 'string');
}
$message =& new XML_RPC_Message($this->_hatenaExistsApiMethodName, $parameter);
$urlInfo = parse_url($this->_hatenaExistsApiUrl);
$client =& new XML_RPC_Client(
$urlInfo['path'],
$urlInfo['host'],
isset($urlInfo['port']) ? $urlInfo['port'] : '80'
);
$response = $client->send($message);
if (!$response) {
return new PEAR_Error($client->errstr);
}
if ($response->faultCode()) {
return new PEAR_Error(
'Fault Code: ' . $response->faultCode() .
'Fault Reason: ' . $response->faultString()
);
}
return XML_RPC_Decode($response->value());
}
}
?>
<?php
/**
* $Id: HatenaExistsApiTest.php 107 2005-12-13 06:16:23Z ishinao $
*/
require_once 'HatenaExistsApi.php';
$existsApi =& new HatenaExistsApi();
$testUrls = array(
'http://d.hatena.ne.jp/',
'http://b.hatena.ne.jp/',
'http://www.hatena.ne.jp/',
);
$existsUrlInfo = $existsApi->call($testUrls);
if (PEAR::isError($existsUrlInfo)) {
die($existsUrlInfo->getMessage());
}
foreach ($existsUrlInfo as $url => $count) {
echo "$url => $count\n";
}
?>
#> php HatenaExistsApiTest.php
http://www.hatena.ne.jp/ => 157
http://d.hatena.ne.jp/ => 35
http://b.hatena.ne.jp/ => 196

そのうちこれを使って、はてブ登録件数をMM/Memoにも表示しよう。→表示した。

Published At2005-12-13 00:00Updated At2005-12-13 00:00