无法与cordova app中的evernote api分享笔记

时间:2015-10-06 00:04:57

标签: cordova evernote

基于evernote-sdk-js的缩小版本,在一个phonegap应用程序中,我可以使用noteStore检索笔记列表。 获取NoteStore的函数:

createNoteStore : function(options) {
                    var noteStoreURL = options.edam_noteStoreUrl;
                    var noteStoreTransport = new Thrift.BinaryHttpTransport(
                            noteStoreURL);
                    var noteStoreProtocol = new Thrift.BinaryProtocol(
                            noteStoreTransport);
                    return new NoteStoreClient(noteStoreProtocol);
                };

使用此功能,我可以获得笔记列表

function getList(){
                                    var $callback = $.Deferred();
                    createNoteStore(params).listNotebooks(
                            params.oauth_token, function
   onSuccess(notebooks) {
                                $callback.resolve(notebooks);
                            }, function onerror(error) {
                                $callback.reject(notebooks);
                            });
                    return $callback;
}

现在我想通过使用'findNotesMetadata'和findNotes来共享单个音符或用一些关键词搜索音符,它们都不适用于 EDAMUserException {errorCode:3,参数:“authenticationToken”}

function Search(word, options, params){
                                    var $callback = $.Deferred();
                    if (!params) {
                        throw new Error('missing required parametres');
                    }
                    var filter = new NoteFilter();
                    filter.words = 'notebook:' + word + ' ';
                    var spec = new NotesMetadataResultSpec();
                    spec.includeTitle = true;
                    // if !options.noteStore && !
                    // create
                    api.createNoteStore(params).findNotes(
                    params.oauth_token, filter, 0, 100, spec,
                            function onSuccess(notebooks) {
                                $callback.resolve(notebooks);
                            }, function onerror(error) {
                                $callback.reject(error);
                            });
                    return $callback;
}

1 个答案:

答案 0 :(得分:1)

errorCode:3是PERMISSION_DENIED所以可能是因为您没有获得API密钥的许可。通过基本访问,您可以列出笔记本,但如果要访问笔记,则需要完全访问权限。有关权限,请参阅this page

您可以在OAuth流程中检查API密钥的权限。如果是这种情况,请使用完全权限重新创建API密钥以解决您的问题。