Evernote初始同步中的USN值很大

时间:2017-07-18 13:00:00

标签: java evernote

我正在尝试使用Java程序同步一个evernote帐户,下面是它的代码示例

NoteStoreClient noteStoreClient = clientFactory.createNoteStoreClient();
SyncChunk syncChunk = noteStoreClient.getSyncChunk(0, 200, true);

while (true) {
     List<Note> noteListforCurrentChunk = syncChunk.getNotes();
     //Sync to DB
     syncChunk = noteStoreClient.getSyncChunk(syncChunk.getChunkHighUSN(), 200, true);
     if (syncChunk.getChunkHighUSN() == syncChunk.getUpdateCount()) {
       return;
     }
}

对syncChunk.getChunkHighUSN()的第一次调用为我的用户返回1187,这导致没有检索到任何注释。这只发生在一些帐户

有人可以为此提供帮助吗?

2 个答案:

答案 0 :(得分:0)

以下是来自the doc的USN的一些引用。

  

帐户中的USN从“1”开始(对于帐户中创建的第一个对象)然后增加   每次创建,修改或删除对象时都是单调的。服务器跟踪   每个帐户的“更新计数”,与已分配的最高USN相同。

所以,USN的数量越多并不总是意味着你有很多笔记。它只表示用户已在其帐户上执行了一些操作。

答案 1 :(得分:0)

我必须创建一个过滤器才能使其正常工作。现在我能够检索此笔记本下的所有笔记

SyncChunkFilter filter = new SyncChunkFilter();
filter.setIncludeNotes(true);
NoteStoreClient noteStoreClient = clientFactory.createNoteStoreClient();
SyncChunk syncChunk = noteStoreClient.getFilteredSyncChunk(0, 200, filter);

while (true) {
     List<Note> noteListforCurrentChunk = syncChunk.getNotes();
     //Sync to DB
     syncChunk = noteStoreClient.getFilteredSyncChunk(syncChunk.getChunkHighUSN(), 200, filter);
     if (syncChunk.getChunkHighUSN() == syncChunk.getUpdateCount()) {
       return;
     }
}