Evernote API:无法在沙盒服务器

时间:2017-06-23 16:05:05

标签: evernote

我目前正在测试与Evernote服务执行完全同步的自定义应用。我正在使用Evernote的测试网站sandbox.evernote.com。一切顺利,直到我尝试在同一测试服务器上创建第二个帐户,以便与我的第一个帐户共享笔记本,以测试链接笔记本内容的同步。

我调用的Evernote API方法与链接笔记本的内容同步如下:

  1. authenticateToSharedNotebook - 工作即返回笔记本的身份验证令牌,但令牌的到期时间仅提前1小时。有点奇怪,但仍可用于测试。
  2. getLinkedNotebookSyncState - 也可以,返回有效的同步状态。
  3. getLinkedNotebookSyncChunk - 我用之前通过同步用户内容收到的链接笔记本调用它,在USN = 0之后(因为这是此链接笔记本内容的第一次同步),max entries = 50(随机选择的值,在从用户自己的帐户同步内容时,使用getFilteredSyncChunk方法可以正常工作),full sync only = true。该方法会引发EDAMUserException异常PERMISSION_DENIED parameter=authenticationToken
  4. 据我了解,我的开发人员的密钥是full类型的密钥,而不是basic - 我可以从我的应用中读取和更新沙箱中的备注,所以它不是将密钥从basic升级到full的问题。

    如果这很重要,我在C ++ / Qt中使用非官方API implementation,但是它到现在才像魅力一样,它使用的代码是从Thrift IDL文件自动生成的,因此没有任何迹象问题出在客户端的API实现上。

    如果来自Evernote的人可以解释我收到此错误的原因以及如何解决这个问题以便我可以继续测试与链接笔记本的同步,我将非常感激。

1 个答案:

答案 0 :(得分:0)

我似乎弄清楚问题是什么:

  1. 我使用了相同的NoteStore对象来同步用户自己的内容和来自关联笔记本的内容 - 如果我正确设置了该对象的便笺存储网址以使其对应,则可能没问题到我试图同步的链接笔记本。我没那样做。现在,我为用户自己的内容和每个链接的笔记本使用单独的NoteStore个对象,每个对象都有自己的正确的便条店URL。
  2. 我在调用getLinkedNotebookSyncChunk时使用了错误的身份验证令牌:我使用了通过authenticateToSharedNotebook获得的令牌,而我应该使用"常规"用户自己的身份验证令牌。
  3. 我更改了这两件事,现在没有抛出异常,正确下载了链接笔记本中的同步块。