因为自己的记录笔记的应用是有道云,又想着把有道云跟自己的小网站联通起来,所以查找了有道云的API,然后实现了nodejs版本的sdk.
目前实现的比较简单,很多实现都没有进行优化,可能会有些BUG⊙﹏⊙‖∣,主要是提供给大家可以相互借鉴
npm i ydnote
//获取token
var YNote = require('ydnote');
var youdao = new YNote({
//申请的client id
clientId : '',
//申请的client secret
clientSecret : '',
//应用回调地址
oauthUrl : ''
});
//获得有道授权登录地址
console.log(youdao.getOAuthUrl());
//然后根据授权地址回调后返回的code,获得token
youdao.getToken('75875d373ab5e9e8b46f32301169bc19').then(function(token){
console.log(token);
}).catch(function(e){
console.log(e.status);
console.log(e.message);
})
再获得token后,将token保存,然后在调用函数的时候即可传token获取相关的信息。
youdao.getUserInfo(token).then(function(userInfo){
console.log('获得用户信息:'+userInfo.user)
}).catch(function(e){
console.log(e.status);
console.log(e.message);
})
youdao.getAllNotebook(token).then(function( bookList ){
console.log(`笔记本个数有:${bookList.length}`);
}).catch(function(e){
console.log(e.status);
console.log(e.message);
console.log(e.response.text)
})
youdao.getNoteOfBook(token,'/513BEFD144B84F28923AE83B09BB3DF2').then(function( noteList ){
console.log(`笔记个数有:${noteList.length}`);
}).catch(function(e){
console.log(e.status);
console.log(e.message);
})
youdao.createNotebook(token,'API创建笔记本').then(function(rsObj){
console.log('笔记本创建成功:'+rsObj.path);
return youdao.deleteNotebook(token,rsObj.path);
}).then(function(){
console.log('笔记本删除成功')//删除无返回值
}).catch(function(e){
console.log(e.status);
console.log(e.message);
console.log(e.response.text);
})
youdao.createNote(token,{
content : '<html><body><p style="color:red">笔记创建测试</p></body></html>',
// content : 'aaa',
title : '测试'
}).then(function(rsObj){
console.log(rsObj);//返回保存后的路径和相关信息
})
.catch(function(e){
console.log(e.status);
console.log(e.message);
console.log(e.response.text);
})
youdao.getNote(token,notePath)
.then(function(rsObj){
console.log(rsObj);//获得笔记的详细信息
})
.catch(function(e){
console.log(e.status);
console.log(e.message);
console.log(e.response.text);
})
youdao.updateNote(token,{
path : rsObj.path,//笔记的path
content : '修改'
})
.then(function(rsObj){
console.log(rsObj);//该函数无返回值
})
.catch(function(e){
console.log(e.status);
console.log(e.message);
console.log(e.response.text);
})
youdao.moveNote(token,rsObj.path,'/513BEFD144B84F28923AE83B09BB3DF2')
.then(function(rsObj){
console.log(rsObj);//返回移动后的路径
})
.catch(function(e){
console.log(e.status);
console.log(e.message);
console.log(e.response.text);
})
youdao.deleteNote(token,rsObj.path)
.then(function(rsObj){
console.log(rsObj);//删除无返回值
})
.catch(function(e){
console.log(e.status);
console.log(e.message);
console.log(e.response.text);
})
youdao.publishNote(token,rsObj.path);
.then(function(rsObj){
console.log(rsObj);//返回分享后生成的URL
})
.catch(function(e){
console.log(e.status);
console.log(e.message);
console.log(e.response.text);
})
youdao.upload(token,__dirname+'/test.js')
.then(function(rsObj){
console.log(rsObj);//返回上传后的路径
})
.catch(function(e){
console.log(e);
})
youdao.download(token,'https://note.youdao.com/yws/open/resource/download/20114/140BC634A1D9455DAC1E0BFBBD7894C5','/home/test.js')
.then(function(rs){
console.log(rs);//下载完成
})
.catch(function(e){
console.log(e);
})
以上是目前有道云笔记OpenApi 提供的功能,能做的还是比较少的,勉强能使用。
如果本文章有帮助到你..麻烦给个小星星啦~ 土豪,请随意..
转载请注明出处: https://chrunlee.cn/article/youdaonote-api-nodejs.html