garbagetown

個人の日記です

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"
    }
  }
]

「ゴミの街」なんて単語をプロフィールに含めているおバカさんは、ぼく一人のようです。