livedoor Reader のピン関連のAPIについて

一筋縄でいかなかったのでメモっとく

ピン一覧の取得

url
http://reader.livedoor.com/api/pin/all
メソッド
post
リクエス
なし
レスポンス(JSON)

[
  {
    created_on : (ピンの作成日時をシリアライズ化した数値?)
    link : リンク
    title : ページのタイトル
  },
  ...
]

ピンの削除

url
http://reader.livedoor.com/api/pin/remove
メソッド
post
リクエス

  • ApiKey:APIキー
  • link:削除対象(元記事)のURL

レスポンス(JSON)

??

ApiKeyについて

removeに必要なApiKeyは、Cookieの"reader_sid=xxxx"ってやつのこと。
Firefox拡張(Vimperatorプラグインとかも含む)だと、以下のようなコードで取得できる。

  function getLDRApiKey() {
    var uri = Cc["@mozilla.org/network/io-service;1"]
                .getService(Ci.nsIIOService)
                .newURI(LDR_DOMAIN, null, null);
    var cookie = Cc["@mozilla.org/cookieService;1"]
                .getService(Ci.nsICookieService)
                .getCookieString(uri, null);
    var apiKey = cookie.match(/reader_sid=([^;]+)/);
    return apiKey ? apiKey[1]: null;
  }

livedoor Reader でのAPI呼び出しには、固定的なパラメタとしてApiKeyが渡されるようになっているっぽい。
しかし、/api/pin/all のような一部のAPIについては、ApiKeyを渡さなくてもレスポンスを返してくれるものもある。(たぶん、Cookieの値だけで通してる?)