Java, Evernote : 通过自分配的 ID 搜索笔记

Java, Evernote : Searching notes by self-assigned ID

我正在开展一个 Java 项目,我正在其中集成 Evernote 服务。现在,我可以保存、更新笔记,但我想做的是搜索笔记。现在,由于 evernote 与我们的基础设施相关联,我想保存我们要将其文本复制到 Evernote 的对象的 ID。

因此,每当文本更新时,我都想从 Evernote 获取相同的笔记并更新其内容。 这是我面临的两个问题:

  1. 在 Note 对象中保存我们的主键 ID。用 GUID 试了一下,它被保存了,因为我可以在 Sandbox 中看到笔记,但不知道如何用 GUID 搜索笔记。如果 GUID 不应该是这样,那么在哪里保存可搜索的主键。
  2. 如第一点所述,应设置可搜索的属性或变量。

这是我目前的一些保存和搜索代码:

Note note = new Note();
note.setTitle("New title");

String nBody = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
nBody += "<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">";
nBody += "<en-note>" + "Test" + "</en-note>";
note.setContent(nBody);
note.setGuid("1234");

Note savedNote =   noteStoreClient.createNote(note);

搜索码:

NoteFilter noteFilter = new NoteFilter();
// AS you can see, I have no idea what filter to set here. 
//  noteFilter.getTagGuids(id);

NoteList noteList = noteStoreClient.findNotes(noteFilter,0,100);

List<Note> notes = noteList.getNotes();

for(Note note : notes){
    System.out.println("Note title is "+note.getTitle());
}

请告诉我我能做什么。非常感谢。 :-)

更新

当我尝试用我自己随机创建的 GUID 保存时会发生这种情况。 错误日志:

EDAMUserException(errorCode:BAD_DATA_FORMAT, parameter:Note.guid)

      at com.evernote.edam.notestore.NoteStore$getNote_result.read(NoteStore.java:13514)

      at com.evernote.edam.notestore.NoteStore$Client.recv_getNote(NoteStore.java:1346)

      at com.evernote.edam.notestore.NoteStore$Client.getNote(NoteStore.java:1316)

      at com.evernote.clients.NoteStoreClient.getNote(NoteStoreClient.java:368)

      at com.journaldev.spring.service.EvernoteServiceImpl.findNoteById(EvernoteServiceImpl.java:157)

您不能在创建笔记时在笔记上设置手动分配的 guid - guid 由服务分配并作为对 NoteStore 的 createNote 调用的一部分在笔记对象上返回。

顺便说一句,guid 有一定的格式,请参阅 format here