JS SDK,获取 SharedNotebooksList 时出现 Thrift 错误代码 12
Posted
技术标签:
【中文标题】JS SDK,获取 SharedNotebooksList 时出现 Thrift 错误代码 12【英文标题】:JS SDK, Thrift error code 12 when getting SharedNotebooksList 【发布时间】:2018-11-17 01:06:14 【问题描述】:这是我第一次使用印象笔记, 就像JS SDK 中给出的示例一样,我使用从 OAuth 获得的令牌创建了我的客户端,并获得了当前用户的所有笔记本,所以这对我有好处。
但我遇到了一个我无法理解的问题,当我使用共享存储的任何方法时,它会引发 Thrift 异常,错误代码为 12,并在消息中提供分片 ID。
我知道 12 错误代码是分片暂时不可用.. 但我知道这是另一回事,因为它不是暂时的……
我有一个完全访问权限的 api 密钥,它可以与笔记商店一起使用,我错过了什么吗?
// This is the example in the JS SDK
var linkedNotebook = noteStore.listLinkedNotebooks()
.then(function(linkedNotebooks)
// just pick the first LinkedNotebook for this example
return client.getSharedNoteStore(linkedNotebooks[0]);
).then(function(sharedNoteStore)
// /!\ There is the problem, throw Thrift exception !
return sharedNoteStore.listNotebooks().then(function(notebooks)
return sharedNoteStore.listTagsByNotebook(notebooks[0].guid);
).then(function(tags)
// tags here is a list of Tag objects
);
);
【问题讨论】:
【参考方案1】:这似乎是 SDK 的错误。我创建了一个 PR (https://github.com/evernote/evernote-sdk-js/pull/90)。
您可以自己使用 authenticateToSharedNotebook 来解决此问题。
const client = new Evernote.Client( token, sandbox );
const noteStore = client.getNoteStore();
const notebooks = await noteStore
.listLinkedNotebooks()
.catch(err => console.error(err));
const notebook = notebooks.find(x => x.guid === guid);
const authenticationToken = await client
.getNoteStore(notebook.noteStoreUrl)
.authenticateToSharedNotebook(notebook.sharedNotebookGlobalId);
const client2 = new Evernote.Client(
token: authenticationToken,
sandbox
);
const noteStore2 = client2.getNoteStore();
const [notebook2] = await noteStore2.listNotebooks();
noteStore2.listTagsByNotebook(notebook2.guid)
【讨论】:
以上是关于JS SDK,获取 SharedNotebooksList 时出现 Thrift 错误代码 12的主要内容,如果未能解决你的问题,请参考以下文章
Paypal JS SDK 和 WebHooks - 获取付款人详细信息
微信JS-SDK之地理位置的获取与在线导航,集成百度地图实现在线地图搜索