node完成钉钉消息通知

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完成消息通知
!!!注意 !!!

  1. userid_list, dept_id_list,to_all_user 三者可选,可三者中一个,可全部三个,但是不能为空
  2. 当传入userid_list不为空,dept_id_list为空时会报错当传入userid_list不为空,dept_id_list为空时会报错
  3. msg有固定格式,需按照官方文档格式拼接
  4. 相同消息每天只通知一次,如果需要多次提醒,可以通过时间戳等形式完成
  5. 当消息需可点击时,传入的url(https://cheny0815.com)在手机端可以直接打开,在pc端直接跳转浏览器,如果需要在钉钉内部打开,可通过dingtalk://dingtalkclient/page/link?url=https%3A%2F%2Fcheny0815.com&pc_slide=true此种形式完成,钉钉会在侧边栏打开链接
  6. 消息可点击时传入的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) => {})
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值