Rewish

ソーシャルブックマークの情報を取得するPHPライブラリ「Services_SBM_Info」

URLに対するソーシャルブックマークの情報を取得するライブラリをOpenpearで公開しています。

Services_SBM_Info - Openpear

と言う報告だけでは何なので、概要と使い方を書いてみます。

ライブラリについて

URLに対するソーシャルブックマーク(以下SBM)の情報を取得するPHP(PEAR)ライブラリです。

ライセンス

New BSD License

依存ライブラリ

  • HTTP_Request2

取得できるSBMの情報

  • ブックマーク数
  • ブックマーク数の単位 (user/users)
  • ブックマーク数のランク (色の変わるブックマーク数に応じたランク)
  • ブックマークコメント
  • エントリーページのURL
  • 追加ページのURL

対応しているSBMサービス

インストール

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());