blog のエントリを投稿したり読んだりするための、汎用ドライバベースのパッケージです。
ウェブログは、インターネット上で無視できない存在です。 一般人が、自分の意見を表明したり 家族や友人や世間に対する思いを記したりといったことを 簡単にできるようになります。 やり方はとても簡単で、自分のサーバやレンタルサーバで blog を運用するために、わざわざ計算機科学を専攻する必要もありません。
blog 用のツールの欠点のひとつは、そのユーザインターフェイスです。 ブラウザベースのツールであるため、 blog のエントリを書いている間は常にオンラインである必要があります。 あるいは通常のテキストエディタでエントリを書き、 オンラインになった時点でそれをコピー&ペーストするという手もあります。 しかし、テキストエディタを使用していると、テキストに対してフォントの効果を適用することができません。 このような場合は、オフラインのツールで blog のエントリを書くのがよいでしょう。
オフラインツールを使用して、ウェブインターフェイス以外 (たとえばウェブサービス経由) でエントリを書くことを考えてみましょう。 たいていの blog 業者や blog ソフトウェアは、 このようなウエブサービス API を (XML-RPC などで) 提供しています。
残念ながら、現在出回っているこれらの API は、それぞれ異なったものとなっています。 エントリの投稿にのみ対応しているものもあれば、投稿だけでなく読み込みに対応したものもあります。 画像やタグの投稿をサポートしているものもあれば、そうでないものもあります。 このようにさまざまな API があるため、 結局のところ各 blog サーバ用に独自のコードを書くはめになってしまいます。
そこで Services_Blogging の出番です。 これは blog のエントリを投稿したり読み込んだりするための統一された API を、各 blog ソフトウェアに依存しない形式で提供します。 ドライバベースの手法で、さまざまな API とのやりとりを行います。 新しい blog 用 API が発表されたとしても、誰かが Services_Blogging パッケージ用のドライバを書きさえすればその blog にアクセスできます。
2007 年 4 月時点で、このパッケージには次のドライバが含まれています。
Blogger
LiveJournal
MetaWeblog
エントリを blog に投稿するには、まずその blog 用に Services_Blogging_Driver のインスタンスを作成する必要があります。 使用している blog システムに対応した API を見つけるか、あるいは Services_Blogging に自動的にそれを見つけされることになります。
ドライバを作成するには、Services_Blogging の factory() メソッドを使用します。 指定するパラメータは 5 つで、それぞれ ドライバ名、ユーザ名、パスワード、サーバの URL そしてサーバの API へのパスとなります。
例 67-1Services_Blogging::factory() によるドライバの作成
|
blog ドライバによっては、サーバやパスが不要なものもあります。 そのような場合は、null を指定します。
blog 用の設定をいちいち探すのは面倒なことです。 そこで、このパッケージでは autodiscovery (自動取得) 機能も提供しています。 そのドライバのインスタンスを作成するための設定を自動検出することもできますし、 あなたの blog システムに必要なドライバを自動検出し、 そのインスタンスを返すこともできます。
設定の自動検出を行うには、Services_Blogging の discoverSettings() メソッドを使用し、 ここにあなたの blog の URL を渡します。 このメソッドは、必要なすべての設定を配列で返します。
いまどきの blog ソフトウェアの大半は、複数の API をサポートしています。 サポートしている API を自動検出したら、 その中から最適なものを選択する必要があります。 通常は、もっとも多くの機能をサポートしているものを選ぶことになるでしょう。 Services_Blogging は、これを補助するためのメソッド getBestAvailableDriver() も用意しています。 このメソッドには、先ほど取得した設定の配列を渡します。 これで、ドライバを作成するために必要なデータはすべてそろいました。
例 67-2設定の自動取得
|
これでもまだ大変だというのなら、 Services_Blogging の discoverDriver() メソッドにすべて任せてしまうこともできます。 このメソッドには、blog の URL とユーザ名、そしてパスワードを渡します。 このメソッドは、ドライバオブジェクトを返します。
例 67-3ドライバの自動作成
|
注意 これらの自動検出用メソッドは、何か問題が発生した (blog ソフトウェアがそれをサポートしていない、 あるいは適切なドライバが見つからないなど) 際には Services_Blogging_Exception 型の例外をスローします。
既存の blog API にはさまざまな機能があるので、ドライバクラスは二種類用意されています。 Services_Blogging_Driver と Services_Blogging_ExtendetDriver (これは、最初のクラスを拡張したものです) です。
Services_Blogging_Driver を継承したドライバは、 投稿の新規作成、保存および削除のみを行います。 既存の投稿の一覧 (や修正) はできません。
Services_Blogging_ExtendetDriver を継承したドライバは、 上で示したほかにも既存の投稿の閲覧や最近の投稿一覧の取得、 最近の投稿のタイトル一覧の取得などが可能です。
既存の投稿を読んだり一覧表示したりする機能の差のほかにも、 API によって投稿のプロパティのサポートにも差があります。 あるシンプルな API は投稿の本文しか処理できないけれど、 別のより高機能な API はタイトルも設定できたり、 さらに別のものでは日付や公開日、カテゴリなどを指定できたりといった具合です。
あなたの blog 用のドライバオブジェクトを取得したら、 まずはそのドライバがサポートしている投稿のプロパティの一覧を取得しましょう。 そのためのメソッドが getSupportedPostProperties() です。これはプロパティ名の配列を返します。 現在は、以下のプロパティが使用できます。
title
content
publishdate
date
url
categories
データ型については Services_Blogging_Post の API ドキュメントを参照ください。
例 67-4エントリの投稿
|