【C#/XML-RPC】プログラムでブログの投稿をする
以前、XML-RPCを利用してファイルのアップロードや記事の一覧取得などはこちらで書きました。
今回は、記事のアップロードに挑戦してみます。
まぁ挑戦、、と言ってもAPIの仕様に則ってXMLを記述し、後は上記の記事と同じように送信するだけな訳ですが、XMLの具体的な記述方法として残しておきます。
(色々とサイトを参考にしても、渡す値はboolの文字列なのか、数値なのか、、と細かいところでどちらか分からないところもあったので、その当たりも含めて)
FC2ブログで実行確認しました。
結構長いですが、ざっと書いてしまうととこんな感じです。
<?xmlversion="1.0"?>
<methodCall>
<methodName>metaWeblog.newPost</methodName>
<params>
<param><value><string>ブログID</string></value></param>
<param><value><string>ユーザコード</string></value></param>
<param><value><string>パスワード</string></value></param>
<param><value><struct>
<member><name>title</name>
<value><string>タイトル</string></value>
</member>
<member><name>description</name>
<value><string>本文</string></value>
</member>
<member><name>dateCreated</name>
<value><dateTime.iso8601>投稿日</dateTime.iso8601></value>
</member>
<member><name>mt_allow_comments</name>
<value><int>コメントの受付(0:する1:しない)</int></value>
</member>
<member><name>mt_allow_pings</name>
<value><int>トラックバックの受付(0:する1:しない)</int></value>
</member>
<member><name>mt_convert_breaks</name>
<value><string>改行をタグに変換(0:する1:しない)</string></value>
</member>
<member><name>mt_text_more</name>
<value><string>続きの記事</string></value>
</member>
<member><name>mt_excerpt</name>
<value><string>説明</string></value>
</member>
<member><name>categories</name>
<array><data>
<value><string>カテゴリ</string></value>
※複数記述化、無しの場合は<value>タグから書かない
</data></array>
</member>
<member><name>mt_keywords</name>
<array><data>
<value><string>キーワード(タグ)</string></value>
※複数記述化、無しの場合は<value>タグから書かない
</data></array>
</member>
<member><name>mt_tb_ping_urls</name>
<array><data>
<value><string>トラックバックURL</string></value>
※複数記述化、無しの場合は<value>タグから書かない
</data></array>
</member>
</struct></value></param>
</params>
<param><value><boolean>0:下書き1:公開</boolean></value></param>
</methodCall>
投稿日のiso8601形式は、ToString("yyyy-MM-dd'T'HH:mm:ss'Z'")で変換できます。
0/1の値は、型がint、string、boolean何れも、0/1を文字としてXMLに記述で問題ありませんでした。(少なくともFC2ブログは)
mt_excerpt、categories、mt_keywordsはFC2ブログで対応していないため、確認できていません。
と、実際作ってみたのですが、どうも改行(brタグではなく、テキストしての改行)は全て無視されてしまい、XMLとしての改行コードなどに変えたりして試してみましたが、どうにもダメでした。
今まで改行を意図して記事を作成していたので、現状は結局使わず仕舞いの機能となってしまいました。(いつか使う日が来るかな)