node-dingtalk - 钉钉SDK
$ npm i node-dingtalk --save
const DingTalk = require('node-dingtalk');
const dingtalk = new DingTalk({
corpid: '',
corpsecret: '',
});
const deparment = dingtalk.department.get('1');
console.log(deparment);
cluster 下换成 Redis 等外部存储从而降低获取 AccessToken 频率
const CACHE = {};
const cache = {
get(key) {
if (CACHE[key] && (CACHE[key].expired > Date.now())) {
return CACHE[key].value;
} else {
return null;
}
},
set(key, value, maxAge) {
const obj = {
expired: maxAge,
value,
};
CACHE[key] = obj;
return obj;
},
};
// const redis = new Redis();
// const cache = {
// * get(key) {
// return redis.get(key)
// },
// * set(key, value, maxAge) {
// return redis.set(key, value, 'PX', maxAge - Date.now());
// },
// };
const DingTalk = require('node-dingtalk');
const dingtalk = new DingTalk({
corpid: '',
corpsecret: '',
cache,
});
官方文档: https://open-doc.dingtalk.com/
获取 AccessToken, 并在有效期内自动缓存, gettoken
获取 jsapi_ticket, 并在有效期内自动缓存, get_jsapi_ticket
获取 js api 接入时需要的配置数据以及签名
辅助方法, 参见 npm urllib
https://open-doc.dingtalk.com/doc2/detail.htm?treeId=172&articleId=104979&docType=1
获取部门列表 department/list
获取部门详情 department/get
创建部门 department/create
更新部门 department/update
删除部门 department/delete
https://open-doc.dingtalk.com/doc2/detail.htm?treeId=172&articleId=104979&docType=1
- 获取部门成员
user/simplelist
- 获取部门成员(详情)
user/list
分页查询参数放到 opts
自动遍历分页查询
- 查询所有的成员 (departmentId 为空时)
- 查询该部门所有成员
获取成员详情 user/get
id 对应于 userid, 参数, 其他参数放到 opts
创建成员 user/create
更新成员 user/update
- 删除成员
user/delete
- 批量删除成员
user/batchdelete
根据 unionid 获取成员的 userid, user/getUseridByUnionid
此处的 unionid 即为 user.openId
根据手机号获取成员 userid, user/get_by_mobile
发送企业消息, message/send
获取企业会话消息已读未读状态, message/list_message_status
上传媒体文件 media/upload
下载媒体文件 media/downloadFile
Please open an issue here.