菊池高志

livedoor クリップのクリップ件数取得 APIサンプルphp版

2008-08-26 21:56:55

Web2.0ナビ の方が公開されていたのですが、コピペしたら動かなかったので、直してみました。

 

LivedoorClipApi.php

require_once 'PEAR.php';
require_once 'XML/RPC.php';

class LivedoorClipApi {

  var $LivedoorApiUrl = 'http://rpc.clip.livedoor.com/count';
  var $LivedoorMethod = 'clip.getCount';

  function getusers($urls) {
    for ($i = 0; $i < count($urls); $i++) {
      $params[] =& new XML_RPC_Value($urls[$i], 'string');
    }

    $msg =& new XML_RPC_Message($this->LivedoorMethod, $params);
    $cli =& new XML_RPC_Client('/count','rpc.clip.livedoor.com');

    $resp = $cli->send($msg);

    if (!$resp) {
      return new PEAR_Error($cli->errstr);
    }

    if (!$resp->faultCode()) {
      return XML_RPC_Decode($resp->value());
    } else {
      return new PEAR_Error('Fault Code: ' . $resp->faultCode() .
                   ' Fault Reason: ' . $resp->faultString() . "\n");
    }
  }
}

 

LivedoorClipApiClient.php

require_once 'LivedoorClipApi.php';

$livedoor = new LivedoorClipApi();

$urls = array(
  'http://clip.livedoor.com/',
  'http://b.hatena.ne.jp/',
  'http://del.icio.us/',
);

$users = $livedoor->getusers($urls);

if (PEAR::isError($users)) {
  die($users->getMessage());
}

foreach ($users as $user) {
  print $user."\n";
}

 

実行するときは LivedoorClipApiClient.php のなかの $urls を適当にイジってから

$ php LivedoorClipApiClient.php

で。

 

 

要リファクタリングですがとりあえずうごきます。。。

 

※このエントリは ブロガーにより投稿されたものです。朝日インタラクティブ および ZDNet Japan編集部の見解・意向を示すものではありません。
  • 新着記事
  • 特集
  • ブログ
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]