这是我第一次使用evernote, 就像JS SDK中给出的示例一样,我使用从OAuth获得的令牌创建我的客户端,然后获取当前用户的所有笔记本,这样对我来说很有用。
但是我遇到了一个我无法理解的问题,当我使用我的共享存储的任何方法时,它会抛出一个错误代码为12的Thrift异常,并在消息中提供分片ID。
我知道12个错误代码是碎片暂时不可用.. 但我知道这是另一回事,因为它不是暂时的......
我有一个完整的访问api密钥,它与note商店一起工作,我错过了什么吗?
// 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
});
});
答案 0 :(得分:0)
这似乎是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)