人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

人力検索はてなおとなり質問APIのRuby版を動かしてみたのですが、エラーが出て動きませんでした。
何か対策方法があれば教えてください(ruby版動かした人のサイトの紹介でもOKです)

1.動かそうとしたソースのあるURL 以下のruby版
http://hatenaquestion.g.hatena.ne.jp/keyword/%e4%ba%ba%e5%8a%9b%e6%a4%9c%e7%b4%a2%e3%81%af%e3%81%a6%e3%81%aa%e3%81%8a%e3%81%a8%e3%81%aa%e3%82%8a%e8%b3%aa%e5%95%8fAPI

2.エラー内容
RDEでRUN時のエラー
------------------------------------------
c:/ruby/lib/ruby/1.8/xmlrpc/client.rb:414:in `call': Invalid RPC request (XMLRPC::FaultException)
from C:/soft/ruby/ruby_server/near.rb:22:in `search'
from C:/soft/ruby/ruby_server/near.rb:32
Completed(1)
------------------------------------------

3.使用しているruby
C:\>ruby -v
ruby 1.8.5 (2006-08-25) [i386-mswin32]

http://rubyforge.org/frs/?group_id=167&release_id=6672 入手元

4.OS
WindowsXP

●質問者: garyo
●カテゴリ:コンピュータ インターネット
✍キーワード:2006-08-25 API Client i386 LIB
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● birdie-brain
●60ポイント ベストアンサー

RDEは使用していないので、irbでサンプルコードを試してみたところ、まったく同じエラーメッセージに遭遇しました。

そこで、質問中のURL(http://hatenaquestion.g.hatena.ne.jp/keyword/%e4%ba%ba%e5%8a%9b%...)にあるPerl版のサンプルを参考にして、検索文字列の文字コードをutf-8にして渡すとうまくいくことが分かりました。

結論としては、以下の方法が有効ではないでしょうか。

対策1:

>$KCODE = 'u'

をスクリプトの先頭(2行目あたり)に追加しておいてRubyスクリプトをutf-8で記述する。

対策2:

NKFなどの文字コード変換ライブラリを使って、XMLRPCに渡す検索文字列を明示的にutf-8に変換する。

◎質問者からの返答

birdie-brainさん、ありがとうございますm(__)m

言われるとおりに行を追加して、エディタでutf-8に変換すると動くようになりました。

ついでに「 pp result」の前に以下を追加するとサーバーでも表示するようになりました。

print "Content-type:text/html\n\n";

pp result

初めてWEB API動かせたのでちょっと嬉しいです。

はてなアイデアの方にも書いておきます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ