Evernote API findNotesMetadata で取得する totalNotes が正しくない

 Evernote API findNotesMetadata で取得する totalNotes が以下の条件で正しい値を返さない

条件
  • NoteFilter.words が指定されている(空ではない)
  • NoteFilter.notebookGuid の指定なし
  • linkedNotebook(非共有ノートブック)が存在するアカウント
  • linkedNotebook に検索に該当するノートが含まれている
この条件で NoteStore.findNotesMetadata を呼び出した場合
戻り値 NotesMetadataList の totalNotes は linkedNotebook 内の該当ノート数を含む値が返るが NotesMetadataList.notes には linkedNotebook に存在するノートは含まれない

また、offset, maxNotes を使用した検索結果は、linkedNotebook 内の該当ノートを含む(実際には取得できない)挙動をするため

note1
note2
note3(linked)
note4
note5(linked)
note6

1. offset=0, maxNotes=3 で findNotesMetadata
note1
note2
notes.count=2, totalNotes=5

2. offset=3, maxNotes=3 で findNotesMetadata 
note4
note6
notes.count=1, totalNotes=5

2回目の offset に 1回目の結果 notes.count=2 を用いて決定してしまうと
同じノートを複数取得したり、取りこぼす可能性がある

対応
  • totalNotes を2回目以降の findNotesMetadata 実行条件としない
  • 2回目以降の offset は notes.count ではなく、前回の maxNotes を用いる
  • 結果が notes.count = 0 の条件でループを抜ける


どなたか findNotesMetadata で linkedNotebook 内のノートも取得する方法知ってたら、教えて下さい!!

コメント