のNode.jsサーバーにEvernoteのAPIを使用してノートの内容を取得します(express.js)私はEvernoteのAPIとのNode.jsを使って自分のプライベートなプロジェクトに取り組んでいます
私は正常jsOAuthモジュールとIを使用してrequestToken
とaccessToken
を得ましたメモをnoteMetaData
からも得ました。
私は
noteStore.getNote
機能を使用する場合しかし、それは連続して失敗します。 NodeBinaryHttpTransport.flushで
エラー:私はすでに私のコールバック関数を挿入しかし、バイナリプロトコルは、同期呼び出し
をサポートしていません。このにErrorMessageと 。
私はAPIドキュメントを確認しましたが、javascript用の特定のドキュメントはありませんでした。引数は異なります。私はがログFunction.length
でどんな種類の議論を望んでいるのか調べましたが、それは0でした。
ここは私のコードです。
私はexpressとrouterを使用しています。require( 'express')。
gbは、開発者のトークンと秘密を含むグローバルオブジェクトです。
router.get('/users',function (request,response){
var parsedUrl = url.parse(request.url);
console.log('search is:'+parsedUrl.search)
client.getAccessToken(
gb.oauthToken,
gb.oauthSecret,
getOauthVerifier(parsedUrl.search),
function(error, oauthAccessToken, oauthAccessTokenSecret, results) {
if(error) {
console.log("error\n\n\n");
console.log(error);
}
else {
console.log('successfully get an access token.');
var accessedClient = new Evernote.Client({
token: oauthAccessToken,
sandbox:true
})
var noteStore = accessedClient.getNoteStore("https://sandbox.evernote.com/edam/note/");
noteStore.listNotebooks(function(err, notebook){
var filter = new Evernote.NoteFilter();
filter.notebookGuid = notebook[0].guid;
console.log('filter is..',filter);
var resultSpec = new Evernote.NotesMetadataResultSpec();
resultSpec.includeTitle = true;
resultSpec.includeContentLength = true;
resultSpec.includeCreated = true;
resultSpec.includeAttributes = true;
noteStore.findNotesMetadata(filter, 0, 100, resultSpec, function(err, notesMeta) {
if (err) {
console.error('err',err);
}
else {
console.log("Found "+notesMeta.notes.length+" notes in your default notebook . . .")
for (var i in notesMeta.notes) {
var noteGuid = notesMeta.notes[i]['guid'];
var note = noteStore.getNote(
noteGuid,{
withContent: true
},
function(err, results){
if(err) return console.error("Error")
console.log(results);
response.end();
})
}
}
});
})
}
);
})