NozbeのAPIについて調べてみた

最近、タスク管理ツールをRTMからNozbeに乗り換えました。
ちょっと高いのが難点ですが、見やすくて良い感じです。

せっかくなので、NozbeのAPIについて調べてみました。
ネタ元:Nozbe API

なんかネタ元のページを見ると、「ここには基本的なことしか書いてないから、ちゃんと使いたければ連絡しろ」みたいなことが書いてありますが、とりあえず無視。

次のようなURLにアクセスすると、JSON形式のレスポンスが返ってくるようです。

http://www.nozbe.com/api/method/param1-data1/param2-data2/key-apikey

メソッドだのパラメータだのはおいておくとして、すべてのアクセスにはAPIキーが必要となります。
これはユーザごとに固定で用意されているもので、各ユーザの設定ページで参照できます。
アプリでは、ユーザにAPIキーを設定してもらえばOK。

ユーザのメールアドレスとパスワードからAPIキーを取得する方法も用意されていまして、

http://www.nozbe.com/api/login/email-your@domain.com/password-test123

とすると、
{“key”:”1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6″}
のようにAPIキーが取得できます。

OAuthに対応していないのが残念です (´・ω・`)

メソッドの説明は長くなりそうなので、表にしました。
幅が足りなくて見づらいですが・・・。

Method Parameter Response
Name Summary Key Value Key Value
projects プロジェクトリスト取得 id プロジェクトID
name プロジェクト名
count 未完了アクション数
contexts コンテキストリスト取得 id コンテキストID
name コンテキスト名
icon アイコンファイル名
count 未完了アクション数
actions アクションリスト取得 what next: Next Actions
project: プロジェクト指定
context: コンテキスト指定”
id アクションID
id whatの値により以下を指定する。
next: 無視
project: プロジェクトID
context: コンテキストID”
name アクション名
showdone
(optional)
“1″ を設定すると完了アクションを取得できる。
whatがnext以外のときのみ有効。”
name_show HTML形式のアクション名(?)
done “0: 未完了
1: 完了”
done_time “アクションが完了した日時
未完了時は “”0″””
time アクションに必要な時間
project_id プロジェクトID
project_name プロジェクト名
context_id コンテキストID
context_name コンテキスト名
context_icon コンテキストのアイコンファイル名
next “next”: アクションがNext Action
false: アクションがNext Actionではない
notes ノート取得 what project: プロジェクト指定
context: コンテキスト指定”
id ノートID
id whatの値により以下の指定する。
project: プロジェクトID
context: コンテキストID”
name ノート名
body ボディー
body_show HTML形式のボディー
date 作成日時
project_id プロジェクトID
project_name プロジェクト名
context_id コンテキストID
context_name コンテキスト名
context_icon コンテキストのアイコンファイル名
check アクション完了 ids アクションID
“;” 区切りで複数指定可”
response “ok”
newaction アクション作成 name アクション名 response アクションID
project_id プロジェクトID
context_id コンテキストID
time アクションに必要な時間
next trueを指定するとNext Actionとなる
newnote ノート作成 name ノート名 response ノートID
body ボディー
project_id プロジェクトID
context_id コンテキストID
newproject プロジェクト作成 name プロジェクト名 response プロジェクトID
body ボディー
info プロジェクト・コンテキスト詳細取得 what project: プロジェクト指定
context: コンテキスト指定
name プロジェクト・コンテキスト名
id whatの値により以下の指定する。
project: プロジェクトID
context: コンテキストID”
body ボディー
body_show HTML形式のボディー

[android] Camera Previewが1.6だと動くのに2.1だとエラーになる 2

カメラを使うアプリをAndroid 1.6で動確してリリースしたら、「動かねー」とかいわれて評価が悲惨なことになった (^o^)/

Android 1.6と2.1で、Camera.Parameters.setPreviewSize()を使用した場合の動きが変わってるみたい。
1.6だとサポートしていないサイズを指定しても動くけど、2.1だとCamera.setParameters()実行時にRuntimeExceptionが発生する。
公式サンプルのやり方だと、端末によっては落ちるので注意しましょ。

2.0以降をターゲットにしているなら、getSupportedPreviewSizes()で使えるサイズを取るのが無難ですね。
1.6ならリフレクションでgetSupportedPreviewSizes()を使っても良いんだけど、サイズ指定無しでも問題なさそうです。


新デザインに対応した gcal++ 1.0.1 をリリース 2

いつの間にかGoogleカレンダーのデザインが変わっていたようなので、gcal++を新デザインに対応させました。

とりあえず、左側のエリアを非表示にしても「予定を作成」ボタンが表示されるようにしてあります。
そのうちオプションで切り替えられるようにするかも。


[android] 別プロジェクトでAIDLをつかってみる

別プロジェクトでのAIDLの使い方についてのコメントあったので、サンプルを公開してみる。
やることはプロジェクトが同じでも別でも変わりません。

プログラム自体は以前書いたのと同じなので省略。

サービス提供側のAIDLファイルを、サービス利用側にコピーして使ってます。
本当は生ファイルを渡すのではなく、JARとかにした方がいい気がします。

InterAppsAIDL.zip


[android] Context Menuを作ってみる 2

なぜか、コンテキストメニューを解説している日本語サイトが少ない気がする。
かなり重要だと思うんだけどなー。

とりあえず、こんな感じの作ってみます。

(さらに…)


[android] メモリをたくさん使いたければダイレクトバッファを使えば良い

写真を加工するアプリを作ってたらメモリ不足が多発した (^o^)/

Androidではアプリが使えるヒープ領域が少ないため、気をつけないとすぐにメモリ不足になる。
ヒープが少ないならヒープ外を使えばいいんじゃね、ってことでダイレクトバッファを使えばメモリをたくさん使えます。

package jp.xfutures.android.sample;

import java.nio.ByteBuffer;

import android.app.Activity;
import android.os.Bundle;

public class MemoryLimitCheckActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // これはメモリ不足で落ちる
        ByteBuffer buf1 = ByteBuffer.allocate(20 * 1024 * 1024);

        // こっちなら大丈夫
        ByteBuffer buf2 = ByteBuffer.allocateDirect(20 * 1024 * 1024);
    }
}

たくさん使えるからといって使いすぎには注意です。


Google Calendarを少しだけ使いやすくするChrome拡張機能「gcal++」 1

Google Calendarを少しだけ使いやすくするChromeの拡張機能「gcal++」を作ってみた。

実装した機能
- 左上のメニューを隠す
- ロゴ画像を隠す
- 検索ボタンを隠す
- 左バーを隠す
- 検索オプションのリンクを小さくする
- 土日に色を付ける

とりあえず、これだけあれば十分かな。

gcal++を使ってスッキリ!!


保存するメモ帳 abrAsusを買ってしまった

あまり紙のメモ帳は使わないのに、SUPER CLASSIC保存するメモ帳 abrAsusを買ってしまった。
A4のコピー用紙を挟んで使うというのも面白いけど、なによりこの薄さがグッとくる。
これならシャツの胸ポケットに入れても違和感がなさそう。

RhodiaのNo.11とほぼ同じサイズ。
保存するメモ帳の方が少しだけ大きい。

Rhodia No.11と保存するメモ帳の比較

この薄さが (・∀・)イイ!!

重さはRodia No.11が58g、保存するメモ帳 (A4用紙1枚 + ペン) が44g。
ちょっと高いのが難点かな・・・。