钉钉机器人 利用 node.js 定时在钉钉群发送消息提示

2018年9月18日 评论

最近公司小组想要每天定时开站会,想要在钉钉群组里面部署一个自动提醒的机器人,研究了一番,终于成功,记录一下部署步骤;

一. 准备工作 (基础环境)

  • 安装node.js
  • npm 安装 silly-datetime
npm install silly-datetime -g

二.代码

新建一个js文件 命名为 'task.js'

钉钉机器人介绍: https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.karFPe&treeId=257&articleId=105735&docType=1

代码如下:

const sd = require('silly-datetime');
const https = require("https");
const querystring = require('querystring');
setInterval(()=>{
	const time = sd.format(new Date(), 'HH:mm');
	const myDate = new Date(); //获取系统当前时间
	const myDay = myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
	if ([1,2,3,4,5].includes(myDay) && time === '09:30') {
		// 创建异步对象
		const mobiles = [@手机号,@手机号2]
		const queryParams = {
		    "msgtype": "text",
     		"text": {
         		"content": "站会开始了"
     		},
     		"at": {
         		"atMobiles": mobiles, 
         		"isAtAll": true
         	}
		};
		const requestData = JSON.stringify(queryParams);
		console.log(requestData);
		const token = "你的机器人koken";
		const url = 'oapi.dingtalk.com';
		const req = https.request({
		    hostname: url,
		    port: 443,
		    path: '/robot/send?access_token=' + token,
		    method: "POST",
		    json: true,
		    headers: {
		        'Content-Type' : "application/json; charset=utf-8"
		    }
		});
		req.write(requestData);
		req.on('error',function(err){
			console.error(err);
		});
		req.end();
	} else {
		console.log(myDate);
	};
},1000);

命令行运行

node task.js
weinxin
我的微信
爱生活、爱学习的小伙伴可以通过扫一扫二维码添加我的个人微信一起交流!
利用n管理node版本,轻松切换node Node.js

利用n管理node版本,轻松切换node

前言 这段时间,一直都是用node的稳定版本,最近因为工作需要,需要用到其他node版本,Google搜了一下,有很好的一个解决方案,选择node版本管理工具,轻松切换node。有两个很好的node版...
正确的安装和使用nvm(mac) Node.js

正确的安装和使用nvm(mac)

前言 目前主流的node版本管理工具有两种,nvm和n。两者差异挺大的,具体分析可以参考一下淘宝FED团队的一篇文章: 管理 node 版本,选择 nvm 还是 n? 总的来说,nvm有点类似于 Py...
nodejs 请求数据不完整问题解决 Node.js

nodejs 请求数据不完整问题解决

今天用nodejs请求天气数据时遇到使用JSON.parse()解析数据时始终报错的问题,仔细调试后才发现获取到的json字符串莫名的丢掉了一部分; const https = require('ht...
匿名

发表评论

匿名网友