2011年6月6日月曜日

Evernoteにアクセスする その6 ノート一覧取得編


さて認証部分も終わったので、そろそろAPIでアクセスしないと
何やってるかわかんなくなってくるのでひとまずアクセスしてみよう!

実際にそこまでEvernote使いこなしているのか?という事も疑問でしたが
「メモ(ノート)を取る」という意味ではすごく良いアプリなんだな。。。と感じてました。

で、メモを活用するというアプリを考えた時に
「んじゃEvernote使えば?」というのが、このAPIにアクセスするきっかけになったわけです。

で、、、当初メモを取るアプリを考えていたんですけど、逆に考える事にしました。
メモはいくらでも、どんな媒体でも取るんだから、メモに情報を付加したり、
メモを取った後に色々眺める機能を作ってみようって。
まぁAPIアクセスを考えれるように、少しは追加とかもやるかもですけど。


で、evernoteにAPIでアクセスするまで、「ノートブック」と「ノート」の概念をあまり考えていませんでした。
なのでまずは一覧化して表示してみましょう。


NoteStore.Client noteStore = getClient();
List notebooks = noteStore.listNotebooks(getAccessToken());

for (Notebook notebook : notebooks) {
String guid = notebook.getGuid();
logger.info(notebook.getName() + ":" + guid);
NoteFilter filter = new NoteFilter();
filter.setNotebookGuid(guid);
NoteList noteList = noteStore.findNotes(getAccessToken(),filter, 0, 100);
for ( Note note: noteList.getNotes() ) {
logger.info(note.getTitle());
}
}


getClient()は前述の通り、SharedIdを元に取得してきます。
それとgetAccessToken()も認証の情報を元に取得してきます。

まずlistNotebooks()によりノートブックの一覧が取得できます。
Notebookには「guid」が存在し、それが一意の識別子になります。

それを元にNoteFilterを準備して、そこにGuidを設定してfindNotes()を行います。
第3、4引数は、オフセットとMaxの件数です。Maxの件数は、、、すべてってのは出来なさそう、、、

ひとまずこんなところですかね。
一応アプリではNotebookの一覧を表示して、クリックしたら、Noteの一覧が出るようなものを考えています。

次はNotebookについて記述していきましょう。

0 件のコメント: