エントリを blog に投稿するには、まずその blog 用に Services_Blogging_Driver のインスタンスを作成する必要があります。 使用している blog システムに対応した API を見つけるか、あるいは Services_Blogging に自動的にそれを見つけされることになります。
ドライバを作成するには、Services_Blogging の factory() メソッドを使用します。 指定するパラメータは 5 つで、それぞれ ドライバ名、ユーザ名、パスワード、サーバの URL そしてサーバの API へのパスとなります。
Services_Blogging::factory() によるドライバの作成
<?php
require_once 'Services/Blogging.php';
$bl = Services_Blogging::factory(
'metaWeblog', // ドライバ名
'username',
'password',
'http://blog.example.com',
'/xmlrpc.php'
);
?>
blog ドライバによっては、サーバやパスが不要なものもあります。
そのような場合は、null
を指定します。
blog 用の設定をいちいち探すのは面倒なことです。 そこで、このパッケージでは autodiscovery (自動取得) 機能も提供しています。 そのドライバのインスタンスを作成するための設定を自動検出することもできますし、 あなたの blog システムに必要なドライバを自動検出し、 そのインスタンスを返すこともできます。
設定の自動検出を行うには、Services_Blogging の discoverSettings() メソッドを使用し、 ここにあなたの blog の URL を渡します。 このメソッドは、必要なすべての設定を配列で返します。
いまどきの blog ソフトウェアの大半は、複数の API をサポートしています。 サポートしている API を自動検出したら、 その中から最適なものを選択する必要があります。 通常は、もっとも多くの機能をサポートしているものを選ぶことになるでしょう。 Services_Blogging は、これを補助するためのメソッド getBestAvailableDriver() も用意しています。 このメソッドには、先ほど取得した設定の配列を渡します。 これで、ドライバを作成するために必要なデータはすべてそろいました。
設定の自動取得
<?php
require_once 'Services/Blogging.php';
$settings = Services_Blogging::discoverSettings('http://blog.example.com');
var_dump($settings);
echo Services_Blogging::getBestAvailableDriver($settings) . "\r\n";
// これを使用して factory() を実行します
?>
これでもまだ大変だというのなら、 Services_Blogging の discoverDriver() メソッドにすべて任せてしまうこともできます。 このメソッドには、blog の URL とユーザ名、そしてパスワードを渡します。 このメソッドは、ドライバオブジェクトを返します。
ドライバの自動作成
<?php
require_once 'Services/Blogging.php';
$bl = Services_Blogging::discoverDriver(
'http://blog.example.com',
'username',
'password'
);
?>
これらの自動検出用メソッドは、何か問題が発生した (blog ソフトウェアがそれをサポートしていない、 あるいは適切なドライバが見つからないなど) 際には Services_Blogging_Exception 型の例外をスローします。