ウェブログのホスティングサービスである Blogger.com は、 Google Data API に参加しています。 PHP アプリケーションで Zend_Gdata_Blogger を使用すると、 既存のブログに対する問い合わせができます。 また、認証済みのアクセスを確立したうえで新しいエントリを投稿することもできます。
Google Blogger API についての詳細な情報は http://code.google.com/apis/blogger/overview.html を参照ください。
Google Data API を使用して現在のバージョンの Blogger にアクセスする際とベータ版の Blogger にアクセスする際には、いくつかの違いがあります。 最大の違いは認証に関する点です。以下の表を参照ください。
表 14.1. 現在の Blogger サービスとベータ版の Blogger サービスの違い
| 項目 | 現在の Blogger サービス | ベータ版の Blogger サービス |
|---|---|---|
| Google Data API のサポート | Yes | Yes |
| 認証元 | Blogger.com のアカウント | Google.com のアカウント |
| ClientLogin 認証のサポート | Yes | Yes |
| HTTP ベーシック認証のサポート | Yes | No |
| AuthSub 認証のサポート | No | Yes |
| 認証前のフィードのフォーマット | Atom 0.3 | Atom 1.0 |
| 認証後のフィードのフォーマット | Atom 1.0 | Atom 1.0 |
| エントリの投稿の際のフォーマット | Atom 1.0 | Atom 1.0 |
| クエリパラメータのサポート | No | Yes |
setBlogName() メソッドで blog の名前を指定します。
これは blogspot URL に
http://blogname.blogspot.com
のようにあらわれる名前となります。
あるいは、フィードを要求する際に blog の名前を指定することもできます。
<?php
$gdataBlog = new Zend_Gdata_Blogger();
// blog のフィードを取得する方法...
$feed = $gdataBlog->getBloggerFeed('blogname');
// blog のフィードを取得する別の方法...
$gdataBlog->setBlogName('blogname');
$feed = $gdataBlog->getBloggerFeed();
?>
このオブジェクトの使用法についての詳細は、 Zend_Feed のドキュメントを参照ください。
setPublishedMin() メソッドおよび setPublishedMax()
メソッドで、エントリの日付の範囲を指定します。
publishedMin を指定すると、
それより前に公開されたエントリはフィードに含まれません。
同様に、publishedMax
で指定した日付より後で公開されたエントリもフィードに含まれません。
フィード内のエントリは、<updated>
要素の順で並べ替えられ、一番新しいエントリがフィードの先頭にくるようになります。
![]() |
カテゴリ検索や全文検索はサポートしません |
|---|---|
|
Google Blogger API は、現在は
カテゴリ、キーワードあるいはタグによる検索をサポートしていません。
Google Blogger API は、現在は全文検索をサポートしていません。
|
post() メソッドを使用して、
エントリを自分の blog に投稿することができます。
そのためには、認証済みの Zend_Http_Client を使用する必要があります。
これは Zend_Gdata_AuthSub クラスあるいは
Zend_Gdata_ClientLogin クラスを使用して作成します。
<?php
$gdataBlog = new Zend_Gdata_Blogger($authenticatedHttpClient);
$gdataBlog->setBlogName('myblog');
$xmlString = <<<XML
<entry xmlns='http://www.w3.org/2005/Atom'>
<title type='text'>Marriage!</title>
<content type='xhtml'>
<div xmlns="http://www.w3.org/1999/xhtml">
<p>Mr. Darcy has <em>proposed marriage</em> to me!</p>
<p>He is the last man on earth I would ever desire to marry.</p>
<p>Whatever shall I do?</p>
</div>
</content>
<author>
<name>Elizabeth Bennet</name>
<email>liz@gmail.com</email>
</author>
</entry>
XML;
$xml = new SimpleXMLElement($xmlString);
$response = $gdataBlog->post($xml->asXML());
?>
現在の認証済みアカウントの blog のフィードを取得するには
getBloggerListFeed() メソッドを使用します。
<?php $gdataBlog = new Zend_Gdata_Blogger($authenticatedHttpClient); $myBlogs = $gdataBlog->getBloggerListFeed(); ?>