原因究明

無理やりRPCのメッセージとかを読んでみるとrubyの投げてるメッセージは適切なご様子。
ということはサーバが問題か。


んー。アッ( *゚д゚)♀
Kikker サーバのリンクしてるApache XML RPCのライブラリが昔のやつだ(´ヘ`;)*1
というわけで、最新のをリンクすると。rubyからも叩けた!!


( ´Д`) < 俺の費やした数時間・・・。

*1:他のサービスでは最新のを使ってたので気づかなかった

Kikker Web API 公開!!

というわけで公開しますよ。

rubyでのサンプルコード


require 'xmlrpc/client'
require 'kconv'

client = XMLRPC::Client.new3(:host => 'ryogrid.myhome.cx',:port => 7777)
#検索するドキュメントのタイプ 2=はてブ 3=CEEK.JP NEWS 4=Youtube 他=だめぽ
doc_type = 2

#キーワードの配列
keyword_arr = Array.new
keyword_arr << "web"
keyword_arr << "ajax"

#キーワードに対する趣向値の配列
taste_value_arr = Array.new
taste_value_arr << 1000.0
taste_value_arr << 200.0

rpc_result = client.call 'KikkerWebAPI.search',doc_type,keyword_arr,taste_value_arr

#ドキュメントのタイトル,url,類似度による評価値,クロールされた日にち,それぞれのページに関するタグとそれの強さの値、の順に出力
rpc_result["titles"].each_index{|index|
print rpc_result["titles"][index].tosjis + " : " + rpc_result["urls"][index] + " : " + rpc_result["eval_points"][index].to_s + "point : " + rpc_result["crawled_dates"][index].to_s + " : " + rpc_result["categories"][index].tosjis + "\r\n"
rpc_result["tags"][index].each{|each_keyword|
print each_keyword[0].tosjis + "=" + each_keyword[1].to_s + ","
}
print "\r\n"
}


上のようなコードを書くと



404 Blog Not Found:Peer Reviewの薦め : http://blog.livedoor.jp/dankogai/archives/50589034.html : 106.322529654459point : 2006-08-06

秋葉原で新CPU「Core 2 Duo」を深夜販売、約200人の行列も:ITpro : http://itpro.nikkeibp.co.jp/article/NEWS/20060805/245242/ : 98.6920584964812point : 2006-08-06

PCの利用状況を漏れなく記録??ライフボートが監視ソフトを発売:ITpro : http://itpro.nikkeibp.co.jp/article/NEWS/20060804/245240/ : 89.6112983444513point : 2006-08-05

注目のテレビ映像送信ソフト使って“どこでもテレビ”に挑戦:ITpro : http://itpro.nikkeibp.co.jp/article/NEWS/20060804/245241/ : 88.1450782671742point : 2006-08-05


こんな結果が得られます。

サンプルコードを見れば分かると思うけど、仕様としては


RPCの仕様: XML RPC
サービスホストのアドレス= ryogrid.myhome.cx:7777
サービス名=KikkerWebAPI
メソッド名=search
できる事=与えた趣向情報に近い内容のエントリのリストを得る


メソッド呼び出しのパラメータは
・ドキュメントのタイプ(int)。現状、2(はてブのエントリ)か3(CEEK.JP NEWSからのエントリ)、4(Youtubeのビデオ)のみ
・キーワードの文字列(stringの入った配列)
・キーワードの文字列に対応した趣向値(double*1の入った配列)


をこの順で渡して下さい。
※キーワードの配列と趣向値の配列は中身の各要素の位置が対応するもので一致しているように入れて下さい。
※キーワードは100個まで。


返り値は、
・titles : タイトル文字列(string)の配列
・urls : 対応するurl(string)の配列
・eval_points : 対応する評価値(double((もしくはfloat?)))の配列
・crawled_dates : 対応するクロール日時の文字列の配列。形式は"2006-08-21"という感じ
・categories : 対応するドキュメント群のカテゴリ(はてブとかから持ってきてるやつ)の配列
・tags : 対応するドキュメント群の各ドキュメントについてのタグの配列の配列。つまり、他の返り値と違って0番目にキーワード,1番目に対応する値をもった2次元配列を要素とする配列が入れ子になって入れられているということ。

ex) 0番目のドキュメントの0個目のタグのキーワード→result["tags"][0][0][0]
0番目のドキュメントの0個目のタグの強さ→result["tags"][0][0][1]

です。

はてブックマークきぼんぬ


このAPIで何ができるのか検討もつかない人はとりあえずKikker使ってみて
http://ryogrid.myhome.cx:1234/


うひゃー。Kikkerのおいしいところの80%ぐらいは開放しちゃいましたなー。
皆使ってね(* ^ー゚)ノ。質問があればコメント欄へどぞ。


ニュースサイトの管理者の方など紹介していただけると幸い(・∀・)ニヤニヤ。


#↓他にもAPIを追加したのでそちらもご覧あれ 2006/8/10


http://d.hatena.ne.jp/kanbayashi/20060809#p1

*1:もしくはfloat?

Today's (hoge)^2

  • 不正なXML/HTMLもパース可能 - ShaniXmlParser (MYCOMジャーナル)

http://journal.mycom.co.jp/news/2006/07/11/342.html
パーサ界のIEか。ちょとおもしろいな。

  • ねごとと、たわごとと、もうそうと(別館)←仮称 - Google Scholar 日本語版

http://d.hatena.ne.jp/igucci/20060710/1152545138
論文検索。いいねいいね。

  • 技術と事業を結びつける鍵--「ラボ」の存在意義を検証する - CNET Japan

http://japan.cnet.com/sp/nils2006s/story/0,2000062938,20166467,00.htm
企業の方々ラボはどんどん作りましょう*1

  • Googleガジェットの作り方

http://tool.stabucky.com/google/gadget_howto.htm
所用でやることになった。
結構簡単。でもあんまり注目されてないよね。


Google、賞金総額8,000ドルの“ガジェット”制作コンテストを開催
http://www.forest.impress.co.jp/article/2006/06/28/googlegadgetscont.html
こんなのもある。あ、でもデスクトップ ガジェット・・・・?、ん。

  • タグ『tommy heavenly』に属するビデオ

http://ryogrid.myhome.cx:1800/keyword=tommy%20heavenly&page=1
イイ(・∀・)。アルバム借りてこようかな。

*1:だって僕の行く先が無くなっちゃうもん