2007.06.18

Web

TrackbackPingとUpdatePingのResponseの違い

TwitbackerWassbackerで、Pingの成功/失敗のレスポンスを返すために、ちょっとPingのレスポンスの仕様を調べてみた。

なんだかTrackbackPingとUpdatePingでは、返すレスポンスが全然違うようだ。
この辺統一してしまえばいいのに。。。

ということで、TwitbackerとWassbackerで、成功/失敗レスポンスをちゃんと返すようにした。
あと、サーバー側でアプリケーションエラーが起こったときにもちゃんとPingのエラーメッセージを返すようにした。

このへんは、Rails側では、ApplicationErrorをrescueして「500 Internal Server Error」と一緒にエラーメッセージをrender :textで返すだけ。

↓こんな感じ↓

render :text => @@error_message, :status => 500

ちなみに、TrackbackPingとUpdatePingのSuccess/Error Responseはそれぞれ以下のようになっています。

Update Ping

Success
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>flerror</name>
<value><boolean>0</boolean></value>
</member>
<member>
<name>message</name>
<value>Thanks for the ping.</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
Error
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>flerror</name>
<value><boolean>1</boolean></value>
</member>
<member>
<name>message</name>
<value>Error occured. Your message is here.</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>

Trackback Ping

Success
<?xml version="1.0" encoding="UTF-8"?>
<response>
<error>0</error>
</response>
Error
<?xml version="1.0" encoding="UTF-8"?>
<response>
<error>1</error>
<message>Error occured. Your message is here.</message>
</response>