跳到主要内容

钉钉推送

参考:

设置钉钉机器人​

  1. 在PC版钉钉上打开您想要添加报警机器人的钉钉群,并单击右上角的群设置图标。
  2. 在群设置弹框中选择智能群助手 > 添加机器人。
  3. 在群机器人页面,选择添加机器人。
  4. 在群机器人页面选择添加自定义。
  5. 在机器人详情对话框中单击添加**,然后在添加机器人对话框中编辑机器人头像和名称,安全设置选择自定义关键词,关键词填写定时任务。选中我已阅读并同意《自定义机器人服务及免责条款》,然后单击完成。

例子​

javascript
const Robot = require('dingtalk-robot-sdk');
const http = require('http');

const config = {
accessToken: 'xxx', //钉钉机器人设置完成后生成
secret: 'xxx' //钉钉机器人签名
};

const robot = new Robot(config);

const Link = Robot.Link;

const Text = Robot.Text;

const FeedCard = Robot.FeedCard;

const Markdown = Robot.Markdown;

const paltform = process.env.PLATFORM || 'mp-weixin';

const paltformName = {
'mp-weixin': '微信',
'mp-alipay': '支付宝'
};

const sendMessage = function (params) {
const text = new Text(`${params.appName}小程序已经推送到微信,请及时进行测试验证`);
robot.send(text);
};
const noticeDingDingFail = function (params) {
const text = new Text(`${params.appName}小程序推送到${paltformName[paltform]}失败`);
robot.send(text);
};

const noticeDingDingNo = function (params) {
const text = new Text(`${params.appName}小程序不参与全量发布${paltformName[paltform]}平台,需要联系客户成功提供密钥`);
robot.send(text);
};

const noticeDingDingSuceess = function (params) {
if (paltform == 'mp-weixin') {
const text = new Text(`${params.appName}小程序已经推送到微信,请及时到CI机器人${params.robot}进行测试验证`);
robot.send(text);
postVersionInfo([
{
appid: params.appId,
version: params.version,
description: params.desc
}
]);
}
if (paltform == 'mp-alipay') {
const link = new Link('这个即将发布的新版本,我把它称它为“红浪漫');
link.setTitle('迭代的火车向前开');
link.setImage(params.qrCodeUrl);
robot.send(link);
}
if (paltform == 'mp-toutiao') {
const title = `【${params.appName}】已经推送到【抖音】,请扫码验证`;
const markDown = new Markdown();

markDown.setTitle('构建通知').add(title).add(`![](${params.picURL})`);

robot.send(markDown);
}
};

/**
* 发送版本信息到自动发版工程
* @param {Array} versionList [{appId: String, version: String, description: String}]
*/
async function postVersionInfo(versionList) {
const data = JSON.stringify({
type: 'versionLog',
list: versionList
});

const options = {
hostname: 'xxx',
port: 3001,
path: '/server/miniprogram/receiveVersion',
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(data) // 这里不能直接用data.length,否则中文字符的长度会错误
}
};

const req = http.request(options, (res) => {
res.on('data', (data) => {
console.log(`\n版本信息已发送,返回结果:\n${data.toString()}\n`);
});
});

req.on('error', (error) => {
// console.log(`\n--------- 版本信息发送失败 ---------\n`)
// console.error(error)
});

req.write(data);
req.end();
}

module.exports = {
sendMessage,
noticeDingDingFail,
noticeDingDingSuceess,
noticeDingDingNo
};