ソーシャルブックマークの情報を取得するPHPライブラリ「Services_SBM_Info」
URLに対するソーシャルブックマークの情報を取得するライブラリをOpenpearで公開しています。
と言う報告だけでは何なので、概要と使い方を書いてみます。
ライブラリについて
URLに対するソーシャルブックマーク(以下SBM)の情報を取得するPHP(PEAR)ライブラリです。
ライセンス
New BSD License
依存ライブラリ
- HTTP_Request2
取得できるSBMの情報
- ブックマーク数
- ブックマーク数の単位 (user/users)
- ブックマーク数のランク (色の変わるブックマーク数に応じたランク)
- ブックマークコメント
- エントリーページのURL
- 追加ページのURL
対応しているSBMサービス
- はてなブックマーク (Hatena)
- Delicious (Delicious)
- livedoorクリップ (Livedoor)
- Buzzurl (Buzzurl)
- Twitter (Twitter)
インストール
PEARコマンドを使う場合
pear channel-discover openpear.org
pear install --alldeps openpear/Services_SBM_Info-beta
SVNでチェックアウトする場合
直接チェックアウトする場合はinclude pathに注意して下さい。
svn co http://svn.openpear.org/Services_SBM_Info/trunk/src Services_SBM_Info
使い方
基本的な使い方
<?php
// ライブラリ読み込み
require_once 'Services/SBM/Info.php';
// コンストラクタ
// 第一引数にURL、第二引数にページタイトル、
// 第三引数に取得するSBMサービスを指定可能 (初期値は'Hatena,Delicious')
$SBMInfo = new Services_SBM_Info('http://example.net/', 'Example Web Page', 'Hatena,Delicious,Livedoor');
// 実行 (APIからデータを取得)
$SBMInfo->execute();
// 有効サービスの全SBM情報を配列で取得 (コメントを除く)
print_r($SBMInfo->getAll());
// コメントを含めたい場合は第一引数にtrueを渡す
print_r($SBMInfo->getAll(true));
URL、ページタイトル、SBMサービスを後で指定する
複数のURLの情報を連続して取得する場合に便利。
<?php
// ライブラリ読み込み
require_once 'Services/SBM/Info.php';
// コンストラクタの引数は省略可能
$SBMInfo = new Services_SBM_Info;
// URLをセット
$SBMInfo->setUrl('http://example.com/');
// ページタイトルをセット
$SBMInfo->setTitle('Example Web Page');
// SBMサービスをセット
$SBMInfo->setServices(array('hatena', 'delicious', 'livedoor', 'buzzurl'));
// or
$SBMInfo->setServices('hatena,delicious,livedoor,buzzurl');
// セットしたら必ずexecute
$SBMInfo->execute();
// 有効サービスの全SBM情報を配列で取得 (コメントを除く)
print_r($SBMInfo->getAll());
SBM情報を個別に取得する
引数に何も入れずに実行すると、SBMサービスの名前をキーにした配列が取得できます。
<?php
require_once 'Services/SBM/Info.php';
$SBMInfo = new Services_SBM_Info('http://example.net/', 'Example Web Page');
$SBMInfo->execute();
// ブックマーク数
echo $SBMInfo->getCount();
// ブックマーク数の単位
echo $SBMInfo->getUnit();
// ブックマーク数のランク
echo $SBMInfo->getRank();
// エントリーページのURL
echo $SBMInfo->getEntryUrl();
// 追加ページのURL
echo $SBMInfo->getAddUrl();
// ブックマークコメント
print_r($SBMInfo->getComments());
引数にSBMサービス名を入れると、個別に値を取得できます。
require_once 'Services/SBM/Info.php';
$SBMInfo = new Services_SBM_Info('http://example.net/', 'Example Web Page');
$SBMInfo->execute();
// はてなブックマークのブックマーク数
echo $SBMInfo->getCount('hatena');
// はてなブックマークのブックマーク数の単位
echo $SBMInfo->getUnit('hatena');
// はてなブックマークのブックマーク数のランク
echo $SBMInfo->getRank('hatena');
// はてなブックマークのエントリーページのURL
echo $SBMInfo->getEntryUrl('hatena');
// はてなブックマークの追加ページのURL
echo $SBMInfo->getAddUrl('hatena');
// はてなブックマークのブックマークコメント
print_r($SBMInfo->getComments('hatena'));
0.3.0で追加した機能
API取得に失敗した場合、例外を投げるようになったので、エラーログを記録するファイルの指定とAPI取得に失敗したサービスを取得するメソッドを追加しました。
<?php
require_once 'Services/SBM/Info.php';
$SBMInfo = new Services_SBM_Info('http://example.net/', 'Example Web Page');
// エラーを記録したい場合はファイルのパスを指定
$SBMInfo->setErrorLog('./sbm_info_error.log');
$SBMInfo->execute();
// API取得に失敗したサービスを配列で取得
print_r($SBMInfo->getFailedServices());