1. 首先通过corpid和corpsecret获取access_token
/*
get请求
params:
corpID
corpSecret
*/
axios.get('https://oapi.dingtalk.com/gettoken', {
params: {
'corpid': DD_CORPID,
'corpsecret': DD_CORPSECRET
}
}).then((resp) => {})
2. 通过获取到的access_token完成消息通知
!!!注意 !!!
- userid_list, dept_id_list,to_all_user 三者可选,可三者中一个,可全部三个,但是不能为空
- 当传入userid_list不为空,dept_id_list为空时会报错当传入userid_list不为空,dept_id_list为空时会报错
- msg有固定格式,需按照官方文档格式拼接
- 相同消息每天只通知一次,如果需要多次提醒,可以通过时间戳等形式完成
- 当消息需可点击时,传入的url(https://cheny0815.com)在手机端可以直接打开,在pc端直接跳转浏览器,如果需要在钉钉内部打开,可通过dingtalk://dingtalkclient/page/link?url=https%3A%2F%2Fcheny0815.com&pc_slide=true此种形式完成,钉钉会在侧边栏打开链接
- 消息可点击时传入的url必须Encode,更多说明
/*
post 请求
params
agent_id
userid_list
dept_id_list
to_all_user
msg
*/
axios.post('https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2?access_token=' + access_token, {
'agent_id': DD_AGENTID,
'userid_list': userid_list, //人员
'dept_id_list': dept_id_list, //部门
'msg': msg
}).then((resp) => {})
3. 获取userid,deptid
// 先获取企业下所有部门,即可获取到deptid
axios.get('https://oapi.dingtalk.com/department/list', {
params: {
'access_token': access_token
}
}).then((resp) => {})
// 通过获取到的deptid对应获取部门下的userid列表
// 如果需要单独通知到个人,需要通过userid去获取用户信息来确定,比较笨的方式,暂时不知道有什么好的方式去获取userid
axios.get('https://oapi.dingtalk.com/user/getDeptMember', {
params: {
'access_token': access_token,
'deptId': deptId
}
}).then((resp) => {})