Evernote SDK Java: SHARD_UNAVAILABLE при аутентификации в общем блокноте - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь пройти аутентификацию в Shared Notebook, чтобы извлечь из него заметки.Но я получаю 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)
}

Было бы здорово, если бы кто-нибудь помог мне с этим вопросом.

1 Ответ

0 голосов
/ 02 января 2019

Вам необходимо пройти аутентификацию в общей записной книжке, используя объект клиента хранилища заметок, специфичный для этой связанной записной книжки , а не используемый по умолчанию.Клиент хранилища заметок «указывает» на конкретное хранилище заметок и может получить доступ только к данным в этом хранилище.Все личные данные пользователя хранятся в одном хранилище заметок, и это основной клиент хранилища заметок, который вы создали там как noteStore.

Для доступа к каждой связанной записной книжке необходимо создать новый клиентский объект хранилища заметок, который является «клиентом» того места, где находится связанная записная книжка.Там достаточно информации, чтобы сделать это внутри объекта LinkedNotebook, который у вас есть, но есть пара дополнительных шагов.

Возможно, вы захотите взглянуть на этот вопрос / ответ .Вы можете использовать информацию в объекте LinkedNotebook для создания нового клиента хранилища заметок, который указывает, где находится соответствующая общая записная книжка.Затем используйте это хранилище заметок для аутентификации в общей записной книжке.Вкратце: вы получите URL хранилища заметок из связанной записи блокнота, а затем используйте его вместе с существующим токеном аутентификации, чтобы создать новый клиент хранилища заметок для общей записной книжки и аутентифицироваться на нем.

Синтаксис (исложность) может варьироваться в зависимости от вашей конкретной платформы и версии SDK.Может быть, посмотрите также эту страницу для некоторой концептуальной помощи.

...