投稿できるブログ情報を取得する「blogger.getUsersBlogs」

続いては投稿できるブログの情報を取得する「blogger.getUsersBlogs」です。
前回の blogger.getUserInfo とほとんど同じですが、返ってくる内容が異なります。記事を投稿する際に必要となる blogid という値はこのblogger.getUsersBlogsで取得します。

説明
 書き手さんが投稿できる weblog の群れを返します。
引数

 String appkey, /* Movable Type, TypePad, ココログでは任意の文字列でよい */
 String username, /* blog のユーザ名(アカウント) */
 String password /* 上記ユーザの blog への login 用パスワード */

返り値
 成功すると、投稿可能な weblog の数の分、構造体の配列が返ってきます。
 構造体には、

 String url, /* 当該 weblog のトップページの URL */
 String blogid, /* 当該 weblog の blog ID */
 String blogName /* 当該 weblog の名前 */


 が含まれます(構造体のメンバーの出現順序は不定)。
 失敗すると、fault が返ります。

http://www.na.rim.or.jp/~tsupo/program/blogTool/mt_xmlRpc.html

今回のblogger.getUsersBlogsでは前回のblogger.getUserInfo とほぼ同一です。違う点は methodName の部分がblogger.getUsersBlogsに変わるだけです。ブログのURLとブログID、ブログの名前が帰ってきます。
投稿のためのPHPですが、前回の blogger.getUsersBlogs とほぼ同様です。

//投稿先
$path = '/xmlrpc.php';
$host = 'blog.fc2.com';
$port = 80;

$appkey = "適当なstring(空でもよい)";
$username = 'ユーザー名';
$password = 'パスワード';

//デバッグ
$debug = 1;

require_once('XML/RPC.php');

$client = new XML_RPC_client($path, $host, $port);
$client->setDebug($debug);
$message = new XML_RPC_Message('blogger.getUsersBlogs',
	array(
		new XML_RPC_Value($appkey, 'string'),
		new XML_RPC_Value($username, 'string'),
		new XML_RPC_Value($password, 'string')
	)
);
$response = $client->send($message);

このPHPスクリプトにより以下のメッセージがfc2にポストされます。

<methodCall>
<methodName>blogger.getUsersBlogs</methodName>
<params>
<param>
<value><string>適当なstring(空でもよい)</string></value>
</param>
<param>
<value><string>ユーザー名</string></value>
</param>
<param>
<value><string>パスワード</string></value>
</param>
</params>
</methodCall>

レスポンス内容。

<methodResponse>
<params>
<param>
<value>
<array>
<data>
<value>
<struct>
	<member>
		<name>blogid</name>
		<value>
			<string>ブログID</string>
		</value>
	</member>
	<member>
		<name>url</name>
		<value>
			<string>http://ブログID.blog●●.fc2.com/</string>
		</value>
	</member>
	<member>
		<name>blogName</name>
		<value>
			<string>ブログの名前</string>
		</value>
	</member>
</struct>
</value>
</data>
</array>
</value>
</param>
</params>
</methodResponse>

FC2の場合は、ブログIDとユーザIDが同一のようですね。ほかのブログサービスの場合は異なることもあると思います。
ここで返ってきたブログIDが新規投稿の際に必要となります。

次はいよいよブログの新規投稿の「metaWeblog.newPost」について書きたいと思います。