iKnow! API
特に面白いアイディアも浮かばないし、優勝賞金が 20 万円と奮起するには微妙な額なので iKnow! API KICK OFF! に応募する気は無いのですが、いかんせんヒマなので iKnow! API を触ってみました。
ユーザプロフィール
まずはてめえのプロフィールでも取得してみましょう。user profile API を参照すると、シンタックスは
http://api.iknow.co.jp/users/matake.json
とあります。・・・何これ?ものすごい分かりづらさ。
よく分からないなりに試行錯誤していたら、どうやら "matake" の部分を取得したいユーザ ID に置き換えればいいらしいということが分かりました。
生産性が悪いことで有名な Java 言語で手抜き実装すると以下のような感じになります。例外処理など一切していないので、良い子は絶対に真似しないでください。
package iknow; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; public class IKowAPITest { public static void main(String[] args) throws IOException { URL url = new URL("http://api.iknow.co.jp/users/garbagetown.json"); BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream())); String line; while((line = reader.readLine()) != null) { System.out.println(line); } reader.close(); } }
この結果、以下のような JSON が取得されました(整形済み)。
{ "username": "garbagetown", "profile": { "icon_url": "http://media1.iknow.co.jp/contents/user/garbagetown/35d84ffv.jpg", "foaf_url": "http://api.iknow.co.jp/users/garbagetown.rdf", "description": "\u4e09\u6b73\u5f53\u6642\u306e\u8a18\u61b6\u3092\u547c\u3073...(略)...", "birthday": null, "gender": "male", "name": "ume", "blog_url": "http://www.iknow.co.jp/user/garbagetown/journal", "profile_url": "http://www.iknow.co.jp/user/garbagetown" } }
ふむ。まあ見た目素直ですね。
ユーザ検索
続いて、全国のスパマーが大喜びな search users API を試してみます。シンタックスは
http://api.iknow.co.jp/users/matching/iknow.json
で、こちらは "iknow" の部分に検索キーワードを入れれば良いようです。マッチングの対象はログイン ID だけではなく、プロフィールに書かれた文言などにもマッチしていました(その他にも何かにマッチしているようですが、詳細は不明)。また、正規表現には対応していないようです。当たり前か。
この API を先ほどのソースコードに適用してみると
package iknow; ...(略)... public class IKowAPITest { public static void main(String[] args) throws IOException { URL url = new URL("http://api.iknow.co.jp/users/matching/garbagetown.json"); ...(略)... } }
このようになり、これを実行したところ、以下のような JSON が取れました。
[ { "username": "garbagetown", "profile": { "icon_url": "http://media1.iknow.co.jp/contents/user/garbagetown/35d84ffv.jpg", ...(略)... "profile_url": "http://www.iknow.co.jp/user/garbagetown" } } ]
「ゴミの街」なんて単語をプロフィールに含めているおバカさんは、ぼく一人のようです。