投稿できるブログ情報を取得する「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 の名前 */
が含まれます(構造体のメンバーの出現順序は不定)。
http://www.na.rim.or.jp/~tsupo/program/blogTool/mt_xmlRpc.html
失敗すると、fault が返ります。
今回の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」について書きたいと思います。