我当前正在测试一个自定义应用程序,该应用程序与Evernote Service执行完整同步。我正在使用Evernote的测试网站sandbox.evernote.com
。一切顺利,直到我尝试在同一测试服务器上创建第二个帐户,以便与我的第一个帐户共享一个笔记本以测试链接笔记本内容的同步。
我调用的Evernote API方法与链接的笔记本内容同步如下:
- AuthentIcateTosharedNnotebook-工作,即返回笔记本的身份验证令牌,但是,令牌的到期时间仅为1小时。有点奇怪,但仍然可以用于测试。
- getLinkedNoteBookSyncstate-也有效,返回有效的同步状态。
- getLinkedNoteBookSyncchunk-我称其为先前从同步用户的内容中收到的链接笔记本,afterusn = 0(因为这是该链接的笔记本内容的第一个同步(,max entries = 50(随机选择的值与getFilteredSyncchunk from from from getsncchunk from从用户自己的帐户同步内容时(,仅完全同步= true。该方法抛出
EDAMUserException
异常,该异常说PERMISSION_DENIED parameter=authenticationToken
。
full
类型之一,而不是basic
-我能够从我的应用程序中的沙盒中读取和更新注释,因此,这不是将密钥从basic
升级到的问题full
。
如果很重要,我正在使用C /QT中的非官方API实现,但是,它像魅力一样工作到现在,并且它使用的代码是从thrift IDL文件中自动生成的客户的API实现。
如果来自Evernote的某人可以解释为什么我会收到此错误以及如何克服此问题,以便我可以继续测试与链接的笔记本同步。
看来我弄清楚了问题是什么:
- 我使用了相同的
NoteStore
对象来同步用户自己的内容和链接笔记本的内容 - 如果我正确地将Note Store URL设置为该对象,则可能是可以的,以便它对应于我尝试的链接笔记本同步。我没有那样做。现在,我对用户自己的内容和每个链接的笔记本使用单独的NoteStore
对象,每个对象都有自己的适当笔记存储URL。 - 我在致电
getLinkedNotebookSyncChunk
中使用了错误的身份验证令牌:我使用了通过authenticateToSharedNotebook
获得的令牌,而我应该使用"常规"用户自己的身份验证令牌。
我更改了这两件事,现在没有抛出例外,链接笔记本中的同步块已正确下载。