[MovableType]XML-RPCを使ってブログ記事を投稿する方法 - POSTコマンド編


手順はすごく簡単です。
システムにPOSTコマンドさえインストールされていれば、他には何もいりません。

ステップ1:記事内容を書いたXMLファイルを作る

エディタでXMLファイルを作って保存します。
中身はこんな感じです。
sample.xml
<?xml version='1.0' encoding='utf-8'?>
<methodCall>
    <methodName>metaWeblog.newPost</methodName>
    <params>
        <param>
            <value><string>1</string></value>
        </param>
        <param>
            <value><string>username</string></value>
        </param>
        <param>
            <value><string>password</string></value>
        </param>
        <param>
            <value>
                <struct>
                    <member>
                        <name>title</name><value><string>ここに記事のタイトルを書きます。</string></value>
                    </member>
                    <member>
                        <name>description</name><value><string>ここに記事本文を書きます。</string></value>
                    </member>
                </struct>
            </value>
        </param>
        <param>
            <value><boolean>1</boolean></value>
        </param>
    </params>
</methodCall>

<param>の各項目の意味は下記のようになっています。
  • ブログID
  • 管理画面にログインするときのユーザ名
  • 管理画面にログインするときのパスワード
  • 記事の件名
  • 記事の本文
  • 公開するかどうかのフラグ(※注)

※注 これはちょっと紛らわしいのですが、投稿時の再構築(HTML書き出し)を行うかどうかのフラグです。
ステータス「公開」「未公開(原稿)」を意味しているわけではありません。
つまり、
'1'の場合:ステータスが「公開」で、HTMLファイルの書き出しが行われる。
'0'の場合:ステータスが「公開」だが、HTMLファイルの書き出しは行われない。
となります。

ステップ2:コマンドラインからコマンドを実行する

$ POST -c text/xml http://example.com/mt/mt-xmlrpc.cgi < sample.xml
※mt-xmlrpc.cgiへのURLは、お使いの環境に応じて書き換えてください。

投稿が成功すれば、標準出力に下記のような応答が出力されます。
<?xml version="1.0" encoding="UTF-8"?><methodResponse><params><param><value><string>419</string></value></param></params></methodResponse>
<value><string>に囲まれた部分の数値は、投稿された記事のエントリーIDです。

感想

コマンドラインから投稿できるというのは、すなわちウェブブラウザなしで投稿できるということです。
あの重たい管理画面を触らずにすむし、投稿がワンアクションで完了するので非常に快適です。
よかったらぜひ試してみてください。
カテゴリ: