【问题标题】:Evernote SDK Java: SHARD_UNAVAILABLE while authenticating to Shared NotebookEvernote SDK Java:SHARD_UNAVAILABLE 同时对共享笔记本进行身份验证
【发布时间】:2018-12-07 14:33:52
【问题描述】:

我正在尝试对共享笔记本进行身份验证以从中提取笔记。但我收到带有错误代码的 EDAMSystemException:“SHARD_UNAVAILABLE”。调试的时候发现自己账号的 ShardId 和共享笔记本的 ShardId 不一样。 在沙盒帐户中进行测试时从未发生过这种情况(目前正在生产中进行测试)。下面是代码:

List<LinkedNotebook> linkedNotebooks = noteStore.listLinkedNotebook();
for(LinkedNotebook linkedNotebook: linkedNotebooks){
    String sharkey = linkedNotebook.getShareKey();
    String share_token = noteStore.authenticateToSharedNotebook(sharekey).getAuthenticationToken(); 
    System.out.println("Share Token:" +shareToken)
}

如果有人能帮我解决这个问题,那就太好了。

【问题讨论】:

    标签: java evernote


    【解决方案1】:

    您需要使用特定于该链接笔记本的笔记存储客户端对象对共享笔记本进行身份验证,而不是您正在使用的默认对象。笔记存储客户端“指向”特定笔记存储并且只能访问该存储上的数据。用户自己的所有个人数据都保存在一个便笺存储中,这就是您在那里创建的主便笺存储客户端noteStore

    访问每个链接的笔记本需要创建一个新的笔记存储客户端对象,该对象是链接笔记本所在位置的“客户端”。在您拥有的 LinkedNotebook 对象内有足够的信息来执行此操作,但还有几个额外的步骤。

    您可能想看看this question/answer。您可以使用 LinkedNotebook 对象中的信息来创建一个新的笔记存储客户端,该客户端指向相应的共享笔记本所在的位置。然后使用 that 笔记存储对那里的共享笔记本进行身份验证。简而言之:您将从链接的笔记本记录中获取便笺存储 URL,然后使用该 URL 以及您现有的身份验证令牌为共享笔记本创建新的便笺存储客户端并对其进行身份验证。

    语法(和复杂性)可能因您的特定平台和 SDK 版本而异。或许也可以查看this page 以获得一些概念上的帮助。

    【讨论】:

      猜你喜欢
      • 2015-11-05
      • 1970-01-01
      • 2017-10-17
      • 1970-01-01
      • 2017-04-13
      • 2015-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多