JS SDK, код ошибки Thrift 12 при получении списка SharedNotebooksList - PullRequest
0 голосов
/ 07 июня 2018

Впервые я работаю с evernote. Как и в примере, приведенном в JS SDK , я создаю свой клиент с токеном, полученным из OAuth, и получаю все записные книжки моего текущегоПользователь, так что это было хорошо для меня.

Но я сталкиваюсь с проблемой, которую не могу понять, когда я использую какой-либо метод моего общего хранилища, он генерирует исключение Thrift с кодом ошибки 12 и выдаёт осколокидентификатор в сообщении.

Я знаю, что 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 Ответ

0 голосов
/ 30 июля 2018

это похоже на ошибку с 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)
...