Java,Evernote:按照自己分配的ID

时间:2016-01-27 12:33:55

标签: java evernote

我正在开发一个Java项目,我正在整合Evernote服务。现在,我能够保存,更新笔记,但我想做的是搜索笔记。现在,由于evernote与我们的基础设施绑定,我想保存我们正在复制到Evernote的文本的ID。

因此,每当文本更新时,我想从Evernote获得相同的注释并更新它的内容。 这是我面临的两个问题:

  1. 在Note对象中保存主键ID。用GUID尝试它,它被保存,因为我可以看到Sandbox中的注释,但不知道如何使用GUID搜索注释。如果不应该使用GUID,那么保存可搜索的主键的位置。
  2. 如第一点所述,应设置哪个属性或变量可以搜索。
  3. 以下是我到目前为止的一些保存和搜索代码:

    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());
    }
    

    请让我知道我能做些什么。非常感谢。 : - )

    UDPATE

    当我尝试使用我自己创建的GUID保存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)
    

1 个答案:

答案 0 :(得分:2)

创建时,您无法在注释上设置手动分配的guid - guid由服务分配,并作为NoteStore上createNote调用的一部分在Note对象上返回。

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