はじめに
前回はWindows Live IDアカウントによる認証を利用して、ブログの記事編集などの操作をLive Spaces MetaWeblog APIで行いました。今回も引き続いてブログの操作と情報の取得を行います。
第39回と40回では、以下のAPIを利用したブログの操作を紹介しています。
- 記事の投稿
- カテゴリーの取得
- 最近の記事一覧の取得
- 指定した記事の取得
- 記事の編集
今回は残りの提供されている内容として次の操作を紹介します。
- 記事の削除
- ユーザーのLive Spacesに関する情報の取得
- ユーザー情報の取得
記事の削除
まずLive Spaces MetaWeblog APIによる記事の削除です。Live Spaces MetaWeblog APIは第39回、Windows Live IDアカウントによる認証方法は第40回で紹介していますので、そちらを参照してください。
記事の削除は、blogger.deletePostメソッドを使います。これまでのメソッド名と違い、metaWeblogに代わりbloggerという単語がメソッドに含まれています。MetaWeblog APIは39回で少し触れているようにBlogger APIを拡張したものです。この記事の削除はBlogger APIで定義されているものになります。
メソッドのパラメーターは次の通りです。
Appkey |
Live Spacesでは無視されます |
Posted |
削除する記事のID |
Username |
ユーザー名 |
Password |
パスワード |
Publish |
無視されます(0または1の値を指定) |
appkeyとpublishはLive Spacesでは無視されますが、要求時に送信するXML文書内には上記パラメーターすべてを指定する必要があります。記事IDは、記事の投稿時や、最近の記事一覧取得によって取得できる記事のIDを指定します。ユーザー名は、Live SpaceのURLに含まれる文字列(http://***.spaces.live.com の***の値)です。パスワードは、Live IDアカウントによる認証を利用する場合は空白です。
戻り値は、エラー以外の場合、常に下記のtrueを示すXML文書が返ります。
実際の記事を削除するメソッドのコードは次のようになります。パラメーターのblogidとusernameを引数に渡して使います。
コード中のGetResponseメソッドは第40回で作成しています。そちらのコードを参照してください。GetResponseメソッドではMetaWeblog APIによるLiveサービスにアクセスして結果を取得する一連の処理を行っています。
以上で、ブログの記事の新規投稿や特定記事の取得、編集、削除とブログ記事に関する操作すべてを紹介したことになります。
ユーザーのLive Spacesに関する情報の取得
次はLive Spacesに関する情報の取得です。これにはblogger.getUsersBlogsメソッドを使用します。このメソッドは指定したユーザーが投稿可能なブログ一覧を返すものですが、Live Spacesではユーザーはひとつのブログしか持てませんので、実質的にはユーザーのLive Spacesのブログ名を取得するのに利用できます。
必要なパラメーターは次の通りです。
appkey |
Live Spacesでは無視されます |
username |
ユーザー名 |
password |
パスワード |
戻り値は、ブログ情報を表す構造体の配列です。構造体は次の内容が含まれています。
url |
ユーザーのLive SpacesのURL |
blogid |
Live Spacesの場合「MyBlog」の固定値 |
blogName |
ブログ名 |
上記の構造体の内容を含む、戻り値のXML文書は次のようになっています。
上記のXML文書から必要な部分を参照してアプリケーションで使用します。ブログのURLはspcaes.msn.comドメインで、現在は通常使用されていないアドレスになっています(アクセスするとspaces.live.comドメインにリダイレクトされます)。URLはユーザー名から、http://ユーザー名.spaces.live.com となるため、blogger.getUsersBlogsメソッドから得られる情報はブログ名のみとなります。
情報を取得するコードは次のようになります。ユーザー名を引数で渡し、戻り値が構造体の内容がキー名と値のコレクションのメソッドとして記述しています。
ユーザー情報の取得
紹介する最後のLive Spaces MetaWeblog APIのメソッドは、ユーザー情報の取得です。これは、blogger.getUserInfoメソッドを使います。ユーザーの姓名やメールアドレスが取得できます。メソッドのパラメーターは次の通りです。
appkey |
Live Spacesでは無視されます |
username |
ユーザー名 |
password |
パスワード |
戻り値は、次の内容を含む構造体です。
nickname |
不明 |
userid |
不明 |
url |
ユーザーのLive SpacesのURL |
e-mail |
公開メールアドレス |
lastname |
名 |
firstname |
姓 |
以下に構造体の各値について説明します。
nicknameとuseridは、ニックネームとユーザーIDを表す値です。Live Spacesの場合、応答される値についてのドキュメントの記載が見当たらないため不明です。アカウントによってはニックネームに相当する値が両方に設定されているようですが、新規に作成したアカウントでは値が設定されず、設定方法も不明でした。
urlのURLはユーザーのLive Spacesに関する情報を取得した時と同じようにspaces.msn.comドメインになっています。
e-mailは、ユーザーのプロフィールの連絡先情報(図1)に設定されている電子メールの値です。Live IDアカウントのメールアドレスとは異なります。
lastnameとfirstnameは、プロフィールの名前(図2)に設定されている値です。
コードは次のようになります。ユーザーのLive Spacesに関する情報の取得と同様にユーザー名を引数に指定し、コレクションを返すメソッドとして記述しています。
以上でLive Spaces MetaWeblog APIで提供されているメソッドはすべて紹介したことになります。
MetaWeblog API エラー
APIのメソッド呼出し時に不正なパラメーターを指定したなど、メソッドの実行に失敗した場合、サーバーから応答されるXML文書にはそのエラー内容を表す構造体が返ってきます。ここでは簡単にその内容を紹介します。エラー時の構造体の内容は次の通りです。
faultCode |
エラーを示すコード(数値) |
faultString |
エラーメッセージ |
たとえば、記事の削除時に存在しない記事IDを指定した場合、次のXMLが返ってきます。
これまで紹介したコードではエラー処理を省略していますが、実際のアプリケーションでは、これらの値を参照し適切に処理する必要があるでしょう。また、MetaWeblog APIに関するエラー処理だけでなく、HTTP通信における例外処理も必要です。
Live Spaces APIs and Feeds
最後にLive Spaces MetaWeblog以外の提供されているAPIについて少しふれておきます。適切なパラメーターを設定しLive SpacesのURLへアクセスすると引用などの操作ができます。それらはAPIとして提供されています。また、最新記事などの各種情報を取得するためにRSSフィードも提供されており、各フィードのURLもSDKのドキュメントに記載されています。
ただし、残念ながら このAPIとフィード情報は古く、最新のLive Spacesと対応していません。一部のAPIやフィード情報だけが利用できる状態となっています。ここではAPIとフィードの一部を紹介します。すべてのAPIとフィードはMSDN
Libraryのドキュメントを参照してください。
Live Spaces APIs
APIのうちのひとつを紹介します。ブログの新規投稿ページをあらかじめタイトルや引用文を設定した状態で開くためのBlogIt(引用)APIがあります。次のURLにアクセスすることで、記事のタイトルと本文と引用元のURLを指定できます。
指定可能なパラメーターは次の通りです。値は、いずれもURL内であるため適切にエンコードする必要があります。またパラメーターは省略できます。
Title |
タイトル |
Description |
本文 |
SourceURL |
引用元のURL |
たとえば、次のURLにアクセスすると図3のようなページに移動します。ページを開く際に、Live IDアカウントによる認証が必要です。
このAPIを利用すると、Webサイトの訪問者にLive Spacesの記事投稿用リンクを提供できます。
RSSフィード
次に、提供されているフィードについて紹介します。Live SpacesではいくつかのRSSフィードが提供されています。
たとえば、ブログ記事やフォト アルバム情報を含むフィードは次のアドレスにアクセスします。
上記の *** 部分は、Live MetaWeblog APIでユーザー名として使用していたLive SpaceのURLに含まれる文字列です。
フィードの公開は、ユーザーが選択できるようになっており、Live Spacesの設定ページ(http://***.spaces.live.com/Options/General/)(図4)から行います。
ブログ記事のみのフィードは次の書式になります。
フォトアルバムのフィードは次の書式です。
ユーザー情報のフィードもあります。
このほかにもフィードはいろいろと提供されています。これらをMetaWeblog APIと組み合わせることで、アプリケーション開発時により多くのユーザー情報の取得も可能です。
おわりに
今回はここまでです。3回に渡り、Live Spacesに関するSDKとAPIを紹介してきました。Live Spaces MetaWeblog APIは、Live Spacesだけに依存したAPIではなく、一般的な仕様に基づいたAPIです。MetaWeblog APIに対応したブログであれば、同様の処理でブログ操作が可能です。本連載が、開発の手助けになれば幸いです。
また、今回扱ったLive Spacesは、関連するLiveサービスと連携できるようアップデートが行われていますが、ブログサービス自体や機能についてはあまりアップデートが最近ありません。Live Spacesに限った話ではありませんが、もし不満点や改良してほしい点があれば、より良いサービスとなるよう、ぜひ開発元へフィードバックしましょう。