2004-09
25
18:49:00
sbがXML-RPC機能に対応


最近めきめき話題を集めているsbが1.06DからXML-RPC機能に対応したそうです。
対応表には対応しているかどうか不明としていたんですが、このバージョンからの対応だったんですね。そこでさっそく実装状況を確認してみました。
インストール自体は楽チンです。インストール手順もきちんと整理されています。DB使わないので、僕みたいなレンタルサーバーがMySQLとかに対応していない人でも気楽ですね。
# ただデフォルトのテンプレートが何故か含まれておらず、別途ダウンロードしてインストールする必要がありました。
さて実際の動作ですが、1stバージョンだけあって、いろいろまだ問題もあるみたいです。


1. mt.supportedMethodsをコールするとログインページが返される
対応しているらしいのですが、何故でしょう?少なくともXMLでは返ってこないようです。
2. mt.supportedTextFiltersをコールするとログインページが返される
mt.supportedTextFiltersはそもそも対応していないようなので失敗するのはよいのですが、XML-RPC Faultが返ってきません。
1と合わせて考えると、Fault時の処理に問題があるのかも知れませんね。
但し、テキスト・フォーマットは自動取得できませんが、手動で指定すれば改行変換は行ってくれるようです。
3. カテゴリが一つも登録されていない状態でmetaWeblog.newPostするとPermission Error
当然POST時にカテゴリ指定はしていない状態です。
カテゴリを一つでも作っていれば問題ないようです。
4. metaWeblog.newPostで追記が空だと、追記部分が<string />になる
空タグがそのまま入ってます。
多分単純なハンドリングミスですね。
ちゃんと追記が記載されていれば問題ありません。
5. metaWeblog.newMediaObjectの返り値がInvaild
以下のようなレスポンスが返ってきます。

<?xml version="1.0"encoding="UTF-8"?>
<methodResponse>
<params><param>
<value><string>http://www.example.com/sb/img/img0_xxxxx.JPG</string></value>
</param></params>
</methodResponse>

これは勘違いしやすいのですが、metaWeblog.newMediaObjectの返り値はStructにただ一つだけurl(string)というmemberが含まれなければなりません。
参考: http://www.xmlrpc.com/metaWeblogApi
6. カテゴリ指定せずに新規POSTし、次にカテゴリ指定してPOSTし直すと、トップページなどでカテゴリが反映されていない
手動で再構築すると反映されます。自動的に記事の再構築をしてくれていないのかな?
ただmt.publishPostには対応していないようなので、手動で行う必要があります。
簡単に確認しただけなので、見落としや当方のミスもあるかと思います。とりあえずファースト・インプレッションということでご参考までに。
まだ開発版だと思いますので、今後に期待してます。大変だと思いますが、頑張って下さい >開発者殿。

2 thoughts on “sbがXML-RPC機能に対応

  1. こんにちは、takkyunさん。
    詳細だなんて、とんでもないです。前からsbは注目してましたので、もし参考になればという程度です。
    >3 は fault response で code = 7 で返ってきますか?
    >ちょっと条件が分からないのですが。
    すみません、こちらでも再現しなくなってしまいました。
    また、パケットは取っていない時だったのでコードが不明ですが、faultStringは前掲のものでした。
    記事とカテゴリーを全部消したり、dataディレクトリ以下を全部消して初期化してみたのですが、正常にPOSTできてしまいました。
    発生した時の状況は、インストール直後にテスト記事をブラウザから投稿して、更に拙作の旅行びと日記(テスト用Modify版ですが)からもPOSTした時に発生しました。
    その後試しにカテゴリを追加して、カテゴリを指定しない記事を再度POSTすると正常に動作しました。
    ただ、再現性が無い以上、ちょっと分かりませんね。こちらの問題かも知れませんし。
    しばらく忘れて下さいませm(_)m
    6の再構築のタイミングと範囲の問題は、多分どこの作者さんも悩みどころでしょうね。特にsbはさくさく感が売りだと思いますし。
    ただ、mt.publishPostは引数にPostIDを取りますし、その記事に関連した「ある程度」の範囲には絞れるかも、とは思うのですが(それでもアーカイブページなどは多くなるのでしょうが)。
    またBlogクライアントの立場からするとmt.publishPostが使えないと再構築(静的生成)タイミングが無くなるのが気になります(Blogクライアントからだけで完結できない、という意味です)。
    難しいところですね・・
    # いろいろ長々と申し訳なかったですが、他のパブリックサービスあたりでは、単にこうさぎ対応を宣言して集客したいだけで、いい加減な実装のままのところも多い中、かなり細部に至るまでしっかりした実装をされていて、正直感心してました。
    同じフリー作者として嬉しくもあり。
    どうぞ今後とも宜しくお願いします。

  2. 詳細な検証、ありがとうございます。
    1はバグですね。確認しました。paramsが空だと xmlrpc モードに切り替わってくれないようです(^^;。2も同様です。paramsがないとそもそも xmlrpc モードに切り替わっていませんでした。
    3 は fault response で code = 7 で返ってきますか?ちょっと条件が分からないのですが。
    4 は空タグ を想定していませんでした。5 は完全に見落としです。
    6 は現状では仕様ですね。MT同様、再構築という概念があるので、mt.publishPost に対応するかどうかは非常に迷っています。
    # 問答無用で全体を再構築するのだけは避けたいと思っているので。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください