2006-07-17 [長年日記]
_ メモ情報取得API
主にメモデータバックアップ目的のためのメモ情報取得APIを用意しました。すみません。API仕様を変更してます。戻り値を直接ルートノードから返すのではなく、必ず"result"ノード下に収納することにしました。
リスト取得
- URL - http://1470.net/api/memo/list
- パラメータ(QUERY_STRING)
- userName - 1470.netユーザーID(省略可)。指定すると、そのユーザーのメモ情報のみが対象となる。
- updt - 更新日時(省略可)。指定するとその更新日時以降に更新されたメモのみが対象となる。
- リクエストメソッド - GET
- 戻り値
- データ形式 - JSON
- 例 {"info": {"totalCount": 1234}, "result": [{"id" : 998, "updt" : "2006-06-30 02:16:20"}, {"id" : 999, "updt" : "2006-06-30 02:16:21"}, ...]}
- info.totalCount - 該当した総項目数(2000を超えている場合、各項目として返るのは最初の2000件)
- result.* - 各項目
- id - メモID。メモにつけられたユニークなID。
- updt - メモの更新日時(JST)
- ソートオーダー
- updt asc。
- 制約
- 結果が2000件を超える場合は、最初の2000件のみを返す。その場合updtパラメータ指定などを使って、続きの情報を取得し直す必要がある。
メモ情報取得
- URL - http://1470.net/api/memo/[メモID]
- パラメータ - なし
- リクエストメソッド - GET
- 戻り値
- データ形式 - JSON
- 例 {"result": {"id" : 34553, "url" : "http://1470.net/user/ishinao/2006/07/01#m_34553", "title" : "集英社 ハチミツとクローバー 9 (9) 羽海野 チカ", "comment" : null, "eval" : null, "tags" : ["羽海野 チカ", "ハチクロ", "マンガ"], "groups" : {}, "uri" : {}, "mono" : [{"asin" : 4088653521, "uri" : "http://www.amazon.co.jp/exec/obidos/ASIN/4088653521/ref=nosim/ishinao-22", "title" : "集英社 ハチミツとクローバー 9 (9) 羽海野 チカ"}], "map" : {}, "event" : [{"name" : "集英社 ハチミツとクローバー 9 (9) 羽海野 チカ 発売日", "stdt" : "2006-07-14 00:00:00", "eddt" : null}], "todo" : null, "rgdt" : "2006-07-01 14:04:38", "updt" : "2006-07-16 20:55:51"}}
- 項目
- id - メモID
- userName - ユーザーID
- url - メモURL
- title - メモタイトル
- comment - コメント
- eval - 評価
- tags - タグ(配列)
- groups - グループ(配列)
- uri - メモに添付されたURI情報(配列)
- url - URL文字列。
- title - URIで示されたドキュメントのタイトル。
- mono - メモに添付されたMONO情報(配列)
- asin - ASINコード。
- url - Amazon個別商品ページURL。
- title - 商品情報(タイトル+著作者情報)。
- map - メモに添付された位置情報(配列)
- name - 位置情報名。
- latitude - 緯度。
- longitude - 経度。
- zoom - Google Maps APIにおけるズーム情報。
- event - メモに添付されたイベント情報(配列)
- name - イベント名。
- stdt - イベント開始日
- use_sttime - イベント開始日で時間要素も有効かどうか
- eddt - イベント終了日
- use_edtime - イベント終了日で時間要素も有効かどうか
- todo - メモに添付されたToDo情報
- name - 次に行うToDo名。
- tododt - その予定日。
- rgdt - メモ登録日
- updt - メモ更新日
バックアップクライアントサンプル実装
require_once 'Zend/Json.php';
$userName = 'ishinao';
$dataDir = '/tmp/backup';
$listUrl = 'http://1470.net/api/memo/list';
$itemUrl = 'http://1470.net/api/memo/';
$touchFile = $dataDir . '/touch';
$updt = filemtime($touchFile);
$rawListData = file_get_contents($listUrl . '?userName=' . urlencode($userName) . '&updt=' . urlencode(date('Y-m-d H:i:s', $updt)));
$decodedListData = Zend_Json::decode($rawListData);
$list = $decodedListData['result'];
foreach ($list as $row) {
$memoId = intval($row['id']);
if (!$memoId) {continue;}
$dataFile = $dataDir . '/' . $memoId . '.txt';
if (file_exists($dataFile) && (filemtime($dataFile) == strtotime($row['updt']))) {continue;}
$rawItemData = file_get_contents($itemUrl . $memoId);
$decodedItemData = Zend_Json::decode($rawItemData);
$item = $decodedItemData['result'];
if ($item['id'] != $memoId) {
throw new Exception('memo cannot read: ' . $memoId);
}
file_put_contents($dataFile, $rawItemData);
touch($dataFile, strtotime($row['updt']));
touch($touchFile, strtotime($row['updt']));
}
_ 携帯用ユーザーページを追加しました
携帯ページにユーザーページ(ユーザーごとの新着/ToDo表示)を追加しました。これで出先でToDo(っつーか買物リスト)をチェックしやすくなったな。
携帯(フルブラウザ以外)でもツール系の機能を使えるようにするべきかなー。携帯は閲覧さえできればそれで十分かなー。と迷いつつちょろっと試してみたところ、TypeKeyやはてな認証APIはEZWebから接続できない(SSL証明書が携帯非対応)ことが判明。ひとまず無理か。俺自身はW-ZERO3+Operaでフル機能使えるしなー。
[ツッコミを入れる]
本日のTrackBacks(全1件)
[TrackBack URL: http://tdiary.ishinao.net/tb.rb/20060717]
公開APIを利用したサンプルサイトを作っていくよを作りました。
AWS、BWS、DWSを利用した[Z]ZAPAnetサーチ2.0や、サン・マイクロシステムズ - サン×リクルート Mash up アワードに応募した中古車、自動車カタログ検索-ZAPAnet-、宿・ホテル検索-ZAPAnet-、物件..


