検索してみるとこんなことが書いてありました(強調は僕)。

PythonでMovableTypeのXML-RPCインターフェースを叩く « taichino.com

ウェブサービスパスワードを確認したら記事を投稿してみます。ここで注意するべきなのはblog_idが文字列である事と、mt_text_moreで「キー名=値」とするとカスタムフィールドデータを渡せる事です。



「mt_text_more」ってのは「追記」、つまり「エントリの続き」のことです。

そんなところにデータ預けちゃって良いのかよ、ていうかそんなことして「追記」はちゃんと投稿できるのかよ、と思ったのですが改行を挟むことできちんと判別できるようです。

コードイメージとしてはこんな感じ。

$text_more = '追記に挿入する文章';
$custom_field = 'フィールド名=値';
$mt_text_more = $text_more . "\n" . $custom_field;

「フィールド名」はというのはカスタムフィールドの「ベースネーム」というやつです。


複数登録したいときには、改行で区切って追加していってやれば大丈夫。
こんな感じで。

$text_more = '追記に挿入する文章';
$custom_field1 = 'フィールド名1=値';
$custom_field2 = 'フィールド名2=値';
$mt_text_more = $text_more . "\n" . $custom_field1 . "\n" . $custom_field2;


なるほど。

場当たり的な対応だなぁと言う気もするけれど、XML-RPCの仕様を変えるわけにはいかないし、これならラッパーさえ変えずに投げるデータを変えるだけで運用を変更できるから楽って言えば楽。気持ちは悪いけれども。


ともあれ、無事に出来たので良しとする。



ちなみに、相変わらずXML-RPC経由で日時指定投稿というのは出来ないのね。
publishが真偽値だからそれはもう仕方のないことかな…

NoPublishMeansDraftを1にして下書きで投稿→別途日時指定という今までのやり方で行くしかないか。

NoPublishMeansDraft | 環境変数リファレンス